ここでIは、(データ型がinteger
ある)time
カラムを持つテーブルを持っている今は、SQL Server 2008整数(時間)をHH:MM:SS :: 00に変換する方法はSQL Server 2008でですか?
時間フォーマットHH:MM:SS:00
に整数値に変換する必要も00表すかどうかを、上記time
形式で明確化を必要としますミリ秒?
助けてください。
例:23421155は23:42:11:55を表し、 421151は00:42:11:51
を示しています。
ここでIは、(データ型がinteger
ある)time
カラムを持つテーブルを持っている今は、SQL Server 2008整数(時間)をHH:MM:SS :: 00に変換する方法はSQL Server 2008でですか?
時間フォーマットHH:MM:SS:00
に整数値に変換する必要も00表すかどうかを、上記time
形式で明確化を必要としますミリ秒?
助けてください。
例:23421155は23:42:11:55を表し、 421151は00:42:11:51
を示しています。
declare @T int
set @T = 10455836
--set @T = 421151
select (@T/1000000) % 100 as hour,
(@T/10000) % 100 as minute,
(@T/100) % 100 as second,
(@T % 100) * 10 as millisecond
select dateadd(hour, (@T/1000000) % 100,
dateadd(minute, (@T/10000) % 100,
dateadd(second, (@T/100) % 100,
dateadd(millisecond, (@T % 100) * 10, cast('00:00:00' as time(2))))))
結果:
hour minute second millisecond
----------- ----------- ----------- -----------
10 45 58 360
(1 row(s) affected)
----------------
10:45:58.36
(1 row(s) affected)
'time'データ型に従った追加情報が好きかもしれません:http://technet.microsoft.com/en-us/library/bb677243.aspx – Sandr
これは4年半ですが、これは答えとして受け入れられるべきです。それはまさに私が必要なものです –
あなたはこのようにSQL内で次の時間変換を使用することができます。
--Convert Time to Integer (Minutes)
DECLARE @timeNow datetime = '14:47'
SELECT DATEDIFF(mi,CONVERT(datetime,'00:00',108), CONVERT(datetime, RIGHT(CONVERT(varchar, @timeNow, 100),7),108))
--Convert Minutes to Time
DECLARE @intTime int = (SELECT DATEDIFF(mi,CONVERT(datetime,'00:00',108), CONVERT(datetime, RIGHT(CONVERT(varchar, @timeNow, 100),7),108)))
SELECT DATEADD(minute, @intTime, '')
結果: - 分単位の時間と 1900-01- 01 14:47:00.000 < - 分単位時間
整数を文字列に変換し、STUFF関数を使用してコロンを時間文字列に挿入することができます。これを済ませたら、文字列を時刻データ型に変換することができます。
SELECT CAST(STUFF(STUFF(STUFF(cast(23421155 as varchar),3,0,':'),6,0,':'),9,0,'.') AS TIME)
これは、狂気に何もせずに時間に変換する最も簡単な方法です。
例では、先行ゼロが存在しないintもありました。その場合は、次のような簡単な操作を行うことができます:
SELECT CAST(STUFF(STUFF(STUFF(RIGHT('00000000' + CAST(421151 AS VARCHAR),8),3,0,':'),6,0,':'),9,0,'.') AS TIME)
数値形式とは何ですか? –
私は彼らが使用した時間形式を知らないが、ここには例10455836がある。 – Praveen
誰かが時間に変換する方法を伝える前にその番号の意味を知る必要がある。 –