0

ダニの日付が必要なレッドゲート製品を使用しようとしています。つまり、634925952000000000 = 01/01/2013 00:00:00

SQLで01/01/190100:00:00を実行するコンバーターを見つけることができますか

これが発生しない場合、「datediff関数でオーバーフローが発生しました。2つの日付/時刻インスタンスを区切る日付部分の数が多すぎます。正確性の低い日付部分でdatediffを使用してみてください。」

 SELECT DATEDIFF(s, '19010101', GETDATE())*1000000

いいえ、誰も助けられません。

アプリがこれをnull日付として使用するので、01/01/190100:00:00の値だけです。

4

4 に答える 4

4

これらの2つの日付の間に返される秒数は、datediffデータ型がintであるサポートするには多すぎます。他の人が分単位の差を使用し、代わりにBigIntを使用して秒に変換するのを見てきました。

次のようなものを試してください。

SELECT DATEDIFF(mi,'19010101',getDate()) * CONVERT(BIGINT,60)

これがSQLフィドルです。

幸運を。

于 2013-01-24T18:05:10.050 に答える
0

以下のクエリを試してください...それはあなたを助けるかもしれません...

DECLARE @date datetime
DECLARE @ticksperday bigint
set @date = getdate()
set @ticksPerDay = 864000000000
declare @date2 datetime2 = getdate()
declare @dateBinary binary(9) = cast(reverse(cast(@date2 as binary(9))) as binary(9))
declare @days bigint = cast(substring(@dateBinary, 1, 3) as bigint)
declare @time bigint = cast(substring(@dateBinary, 4, 5) as bigint)

select @date as [DateTime], @date2 as [DateTime2], @days * @ticksPerDay + @time as [Ticks]
于 2013-01-24T18:00:35.770 に答える
0

datetimeconversionが必要なようです。

SELECT CONVERT(VARCHAR, datetick, 120) FROM supportContacts

デモ

于 2013-01-24T18:10:44.243 に答える
0

599581440000000000は、上記のソリューションのいずれもこれを思い付かなかった何らかの理由からの値です。

于 2013-01-25T11:03:18.163 に答える