我测试了这些数据库服务器在year 2038 problem焦点下向日期添加天数的功能的行为:
我需要这些函数来基于一个表中的日期和另一个表中的动态天间隔(作为整数)来计算视图中的日期列。结果只需要一个日期,不需要日期时间。
在MySQL / MariaDB上:SELECT DATE_ADD('2038-01-19', INTERVAL 1 DAY)
返回预期的2038-01-20
。
在SQL Server 2016/2019上:SELECT DATEADD(day, 1, 2038-01-19)
返回1905-07-13 00:00:00.000
。它溢出而没有错误。
是否有针对SQL Server的解决方法/设置来添加日期而不会遇到2038年的问题?
尝试
SELECT DATEADD(day, 1, '2038-01-19')
而不是
SELECT DATEADD(day, 1, 2038-01-19)