【发布时间】:2017-10-02 14:04:08
【问题描述】:
运行SELECT CONVERT(date, '') 的简单T-SQL 查询将呈现1900-01-01 的结果。在我看来,将空白字符串转换为1753-01-01(允许的最小日期值)或NULL 会更加一致。 1900 看起来很随意,但我认为这是 MS SQL 程序员经过深思熟虑的设计选择。这个功能的目的是什么?
【问题讨论】:
-
试试
SELECT CONVERT(DATETIME, 0)——同样的结果。DATETIME的起始时代是 1900-01-01,更早的日期用负值表示。 Excel 使用相同;我敢肯定还有其他地方(我认为是 OLE DB/COM?)也有这个价值。作为一个不错的整数,它显然是处理两位数年份的方便起点(即在编写软件时的 20 世纪)。DATETIME2从 0001-01-01 开始,不过(但你不能直接将整数转换成那个,所以它不可见)。
标签: sql-server