1314637182953のような13桁の数値をSQL Serverのdatetime
に変換するにはどうすればよいですか?キャストと変換の両方で直接算術オーバーフローエラーが発生します。SQL Server - 13桁の数字をdatetimeに変換する
同じ結果:
select Convert(datetime, cast(START_DATE as varchar(8)), 112), *
from table
1314637182953のような13桁の数値をSQL Serverのdatetime
に変換するにはどうすればよいですか?キャストと変換の両方で直接算術オーバーフローエラーが発生します。SQL Server - 13桁の数字をdatetimeに変換する
同じ結果:
select Convert(datetime, cast(START_DATE as varchar(8)), 112), *
from table
が、それはミリ秒単位でUNIX timeだと仮定すると、これを試してみてください。数については
DATEADD(SECOND, START_DATE/1000 ,'1970/1/1')
をあなたのポスト、SQL-2008リターンから2011-08-29 16:59:42.000
恐ろしい!これはそれでした。ありがとう。 – legendofawesomeness
我々は、上記のコードでオーバーフローエラーが発生する可能性があるエポック(1970年1月1日)をはるかに過ぎています。
それは以下のように1000で割る前に、BIGINTデータ型として、問題のフィールドをキャストすることによって簡単に修正することができます。
DATEADD(SECOND, CAST(START_DATE as BIGINT)/1000 ,'1970/1/1')
数が何を表しているのでしょうか? – dasblinkenlight
この列定義は、長さが9で精度が19の数値ですが、名前(START_DATE)に示されるように、日付が含まれています。この列の値はすべて13桁の数字なので、実際の日付を取得する必要があります。 – legendofawesomeness
あなたが指定した例が翻訳する日付を知っていますか? –