2017-10-03 16 views
0

私はNUMERIC(5,2)データを含む列を持っています。データは、シフト開始時間を表す。いくつかの例は、6.30,10.30,13.30および15.30である。これを時間に変換する最良の方法は何ですか?私は別のフィールドに対して時間計算を行うことができますか?もう1つのフィールドは日時フィールドです。数値を時刻に変換する

編集:値は時間を表します。たとえば、6.30 = 06:30、15.30 = 03:30 PM。

+0

これらの値は何を表していますか? –

+0

DBスキーマへのアクセス権がないと思われたり、[TIMEフィールド](https://technet.microsoft.com/en-us/library/bb677243(v = sql.110).aspx)代わりに。 – Powerlord

+0

@powerlord根本的な原因を解決しようとしていますが、サードパーティベンダーのデータベースを使用している会社のアウトソーシングレポートを作成しています。したがって、この例では、いいえ。 – chrj15

答えて

2

あなたはこのような何かを行うことができます。

select dateadd(minute, floor(col) * 60 + (col % 1) * 100, 0) 
+0

これはどうやって説明できますか? –

+1

@YogeshSharma 。 。それは2つの部分に分けられます.1つは1時間分、もう1つは分です。これは、各パーツを分に変換し、それを使って時間を作成します。 –

1

colon(:)dot(.)を交換し、あなたの時間の列と比較します。 timecolを考慮し

select * 
from yourtable 
Where timecol = replace(numericcol,'.',':') 

はRHSが暗黙的にtimeに変換されます、データ型timeです。

+0

'6.3'は' 6:30'ではなく '6:03'に変換されます。 –

関連する問題