我尝试使用需要日期刻度的红门产品,即634925952000000000 = 01/01/2013 00:00:00
我可以在sql
中找到转换器来处理01/01/1901 00:00:00没有发生这种情况“dateiff函数导致溢出。分隔两个日期/时间实例的日期部分的数量太大。尝试使用具有不太精确的日期部分的datediff。”
SELECT DATEDIFF(s, '19010101', GETDATE())*1000000
回答没有人可以帮忙。
只是01/01/1901 00:00:00的值,因为app将此作为空日期使用。
答案 0 :(得分:3)
这两个日期之间返回的秒数对于datediff数据类型来说太多了,无法支持int。我已经看到其他人在几分钟内使用差异,然后使用BigInt转换为秒。
尝试这样的事情:
SELECT DATEDIFF(mi,'19010101',getDate()) * CONVERT(BIGINT,60)
这是SQL Fiddle。
祝你好运。答案 1 :(得分: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]
答案 2 :(得分:0)
答案 3 :(得分:0)
599581440000000000是由于某种原因,上述解决方案都没有提出这个值。