2010-06-11 112 views
0

我知道,当我这样做时,将其转换GETDATE为intTSQL GETDATE转换

select cast (getdate() as int) 

我的服务器上GETDATE输出为 “2010-06-11 14:42:20.100” 和INT哪个上述命令转换为40339.这个整数是什么?这个int是否考虑过分钟和 秒?我很困惑。请帮忙。

问候

Manjot

回答

0

此号码是由于参考日期,这是01/01/1900的天数。你应该得到相同的结果:

SELECT DATEDIFF(day, 0, GETDATE()) 

在内部,SQL将datetimes存储为两个4字节整数。第一个整数(您在声明中获得的)表示自参考日期以来的天数。第二个整数代表自午夜以来1/300秒的间隔数。您可以通过先将二进制转换为二进制,然后再转换为int来找到第二个整数:

SELECT CONVERT(int, CONVERT(binary(4), GETDATE())) 
+0

非常感谢。 – Manjot 2010-06-11 03:07:14