SQL Server:DATEADD溢出

问题描述 投票:0回答:1

我测试了这些数据库服务器在year 2038 problem焦点下向日期添加天数的功能的行为:

  • MySQL 5.7.29
  • MySQL 8.0.16
  • MariaDB 10.4.12
  • SQL Server 2016(13.0.1742)
  • SQL Server 2019(15.0.2070)

我需要这些函数来基于一个表中的日期和另一个表中的动态天间隔(作为整数)来计算视图中的日期列。结果只需要一个日期,不需要日期时间。

在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年的问题?

mysql sql-server tsql date-arithmetic dateadd
1个回答
0
投票

尝试

SELECT DATEADD(day, 1, '2038-01-19')

而不是

SELECT DATEADD(day, 1, 2038-01-19)
© www.soinside.com 2019 - 2024. All rights reserved.