日期条件WHERE子句:如何在条件参数中给日期变量减12个月
不同数据库下的日期偏移写法
这部分代码得看你用的是哪种数据库,不同数据库的日期处理函数不一样,给你列几种常用场景的写法:
MySQL/MariaDB:两种写法都能实现,用
DATE_SUB()函数或者直接用INTERVAL关键字:-- 写法1:DATE_SUB函数 disease_date BETWEEN DATE_SUB(study_date, INTERVAL 12 MONTH) AND study_date -- 写法2:直接减INTERVAL disease_date BETWEEN study_date - INTERVAL 12 MONTH AND study_datePostgreSQL:直接用
INTERVAL关键字做日期偏移:disease_date BETWEEN study_date - INTERVAL '12 months' AND study_dateSQL Server:用
DATEADD()函数,传入负数实现减12个月:disease_date BETWEEN DATEADD(MONTH, -12, study_date) AND study_dateOracle:用
ADD_MONTHS()函数,传入负数完成日期回推:disease_date BETWEEN ADD_MONTHS(study_date, -12) AND study_date
如果你的数据库不在上述列表里,查对应数据库的日期函数文档就行,核心逻辑就是生成study_date往前推12个月的日期,再和disease_date做范围匹配。
内容的提问来源于stack exchange,提问作者user19890826
相关产品推荐
相关产品推荐

