如何实现PostgreSQL与SQL Server通用的日期加1天操作
兼容PostgreSQL与SQL Server的日期加1天通用实现
目前有两种可直接在双数据库运行的无判断写法,适用不同版本场景:
- 方案1:适配PostgreSQL 11及以上、全版本SQL Server
直接使用DATEADD语法即可,PostgreSQL从11版本开始原生兼容该SQL Server风格函数:DATEADD(day, 1, STOP_DATE) - 方案2:适配低版本PostgreSQL、SQL Server 2008及以上
使用ANSI标准的时间间隔加法写法,两个数据库均支持该标准语法:STOP_DATE + INTERVAL '1 day'
避坑提示
- 不要使用
STOP_DATE + 1的整数加法写法,SQL Server不支持日期与整数直接运算,会抛出类型不匹配错误 - 如果你的PostgreSQL版本低于9.4,没有完全兼容的无判断写法,建议优先升级数据库版本,或通过上层代码判断数据库类型走分支逻辑
内容的提问来源于stack exchange,提问作者DGK
相关产品推荐
相关产品推荐

