我有一个如下所述的查询。
select CAST(0x83360B00 AS Date)
当我在SQL server中运行此查询时,我能够以日期格式获得结果:
2012年12月15日
我想知道的是这是如何产生的。提前谢谢。
答案 0 :(得分:6)
Sql server将DATE
数据类型的内部表示形式存储为1 Jan 0001
的大端字节数。
所以0x83360B00是
SELECT 0x83 + 0x36 * 256 + 0x0B * 65536
= 734851 days
添加这些:
DECLARE @Date DATE = '1 Jan 0001'
SELECT DATEADD(dd, 734851, @Date)
返回:
2012-12-15
答案 1 :(得分:0)
可能与对应的转换为varbinary:
SELECT CAST(CAST('2012-12-15' AS DATE) AS VARBINARY)