SQL添加两个日期变量(日期+日期)

Abd*_*eed 0 sql t-sql sql-server

检查以下脚本

SELECT getdate() CurrentDate,getdate()+getdate() NewDate
Run Code Online (Sandbox Code Playgroud)

结果是:

CurrentDate             NewDate
2016-04-04 13:57:51.713 2132-07-08 03:55:43.427
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么年份是2132年,而月份是07年新日期字段.

Squ*_*rel 12

1900-01-01 是日期0

SELECT CONVERT(datetime, 0)
Run Code Online (Sandbox Code Playgroud)

当您一起添加2个日期时,它会隐式转换为整数,执行添加,然后转换回日期时间

SELECT  CONVERT(INT, getdate()), -- no of days since 1900-01-01
        CONVERT(INT, getdate()) + CONVERT(INT, getdate()), 
        CONVERT(DATETIME, CONVERT(INT, getdate()) + CONVERT(INT, getdate()))
Run Code Online (Sandbox Code Playgroud)

添加2个日期是不合逻辑的.但您宁愿使用x天添加x天dateadd( day , x, a_date )