来自自动导出脚本的SQL Server DateTime格式

时间:2010-12-15 10:54:51

标签: sql-server datetime

使用带数据的sql脚本生成时,日期时间将使用强制转换导出:

CAST(0x00009E0E0095524F AS DateTime)

有谁知道使用什么格式?

示例中的日期显示为2010-10-13 09:03:39.783

1 个答案:

答案 0 :(得分:2)

高于4个字节=自1900年1月1日起的天数,低于4 =时间

这是datetime的内部存储,它是8个字节,两个4字节整数,一个是整天,另一个是一天的分数。

DECLARE @inttop bigint,  @TheValue bigint
SET @inttop = POWER(CAST(2 AS bigint), 32)
SET @TheValue = CAST(0x00009E0E0095524F AS bigint) 

SELECT
    --days since 01 Jan 1900
    @TheValue / @inttop,
    --fractional time of day
    CAST(@TheValue % @inttop AS float) / @inttop

--and confirm it
SELECT
    DATEADD(DAY, @TheValue / @inttop, 0),
    CAST(CAST((@TheValue % @inttop) AS float) / @inttop AS datetime)
相关问题