为什么将空字符串转换为SQL Server中的日期会导致1900-01-01?

时间:2017-10-02 14:04:09

标签: sql-server

运行SELECT CONVERT(date, '')的简单T-SQL查询将呈现1900-01-01的结果。在我看来,将空白字符串转换为1753-01-01(最小允许日期值)或NULL会更加一致。 1900只是看起来很随意,但我认为这是MS SQL程序员精心设计的选择。这个功能的目的是什么?

2 个答案:

答案 0 :(得分:3)

这是由于隐式转换。 sql server中的0日期是1/1/1900。之前的任何日期都是负数。

答案 1 :(得分:1)

SQL Server日期时间日历起始点是1900年1月1日的开始。

https://stackoverflow.com/a/17071583/7974050