MySQL转SQL Server:如何转换指定DATE_ADD日期计算SQL语句
MySQL转SQL Server日期语句转换
原MySQL语句的核心逻辑是:获取当前月份最后一天,加1天得到下月第一天,再往前推4个月,最终得到当前日期往前数4个月的当月第一天。
对应SQL Server的转换语句:
DATEADD(MONTH, -4, DATEADD(DAY, 1, EOMONTH(CURRENT_TIMESTAMP)))
分步解释:
EOMONTH(CURRENT_TIMESTAMP):替代MySQL的LAST_DAY(CURRENT_DATE),直接返回当前日期所在月份的最后一天DATEADD(DAY, 1, ...):给当月最后一天加1天,得到下一个月的第一天,对应原语句的DATE_ADD(LAST_DAY(...), INTERVAL 1 DAY)DATEADD(MONTH, -4, ...):将上述结果往前推4个月,对应原语句的DATE_ADD(..., INTERVAL -4 MONTH)
验证示例(当前日期为2024-06-15):
- MySQL执行结果:
2024-03-01 - SQL Server执行结果:
2024-03-01,逻辑完全一致
内容的提问来源于stack exchange,提问作者Kelleigh-Ann Carelse
相关产品推荐
相关产品推荐

