我知道当我执行以下操作时,它会将getdate转换为int
select cast (getdate() as int)
我服务器上的Getdate输出是“2010-06-11 14:42:20.100”,上面命令转换成的int是40339.这是什么整数?这个int是否考虑了分钟和 秒?我很迷惑。请帮忙。
此致
Manjot
答案 0 :(得分:0)
此数字是自参考日期起的天数,即01/01/1900。你应该得到相同的结果:
SELECT DATEDIFF(day, 0, GETDATE())
在内部,SQL将日期时间存储为两个4字节整数。第一个整数(您在语句中得到的)表示自参考日期以来的天数。第二个整数表示自午夜起的1/300秒间隔的数量。您可以通过先转换为二进制,然后转换为int:
来找到第二个整数SELECT CONVERT(int, CONVERT(binary(4), GETDATE()))