sql中1901年1月1日00:00:00的记号

sql中1901年1月1日00:00:00的记号,sql,Sql,我正在尝试使用需要以记号表示日期的redgate产品,即6349259520000000000=01/01/2013 00:00:00 我可以找到一个转换器来计算sql中的01/01/1901 00:00:00吗 如果不发生这种情况,“datediff函数导致溢出。分隔两个日期/时间实例的datepart数量太多。请尝试将datediff与精度较低的datepart一起使用。” 回答:没有人能帮忙 只需输入01/01/1901 00:00:00的值,因为应用程序将其用作空日期。尝试以下查询。。。

我正在尝试使用需要以记号表示日期的redgate产品,即6349259520000000000=01/01/2013 00:00:00

我可以找到一个转换器来计算sql中的01/01/1901 00:00:00吗

如果不发生这种情况,“datediff函数导致溢出。分隔两个日期/时间实例的datepart数量太多。请尝试将datediff与精度较低的datepart一起使用。”

回答:没有人能帮忙


只需输入01/01/1901 00:00:00的值,因为应用程序将其用作空日期。

尝试以下查询。。。也许这对你有帮助

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]

请尝试下面的查询。。。也许这对你有帮助

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]

这两个日期之间返回的秒数太多,datediff数据类型无法支持int。我见过其他人使用分钟差,然后使用BigInt转换为秒

试着这样做:

SELECT DATEDIFF(mi,'19010101',getDate()) * CONVERT(BIGINT,60)
这是我的建议


祝你好运。

这两个日期之间返回的秒数太多,datediff数据类型无法支持int。我见过其他人使用分钟差,然后使用BigInt转换为秒

试着这样做:

SELECT DATEDIFF(mi,'19010101',getDate()) * CONVERT(BIGINT,60)
这是我的建议


祝你好运。

听起来你想要这个


听起来你想要这个


599581440000000000是由于某种原因而得出的值,上述解决方案均未得出此结果。599581440000000000是由于某种原因而得出的值,上述解决方案均未得出此结果。

OP希望得到此结果
01/01/1901 00:00
:)OP希望得到此结果
01/01/1901 00:00
:)Spajce,我需要勾号值出来1901-01-01请检查Spajce,我需要勾号值出来1901-01-01请检查