从当前日期以及未来生效日期提取最近 3 年的记录 sql
Extract records of last 3 years from the current date as well as future effective date in sql
这是我的table。
cid name dob(timstamp dtype)(dd-mm-yyyy)
101 x 11-02-2015
333 c 22-12-2017
301 y 12-12-2018
901 z 21-07-2019
111 a 02-07-2020
222 b 31-12-9999
333 c 22-12-2025
112 c 21-02-2016
这是我的table。我想从当前日期以及未来的生效日期提取过去 3 年的记录。所以我的输出应该是
cid name dob(timstamp dtype)
333 c 22-12-2017............(current year-3)
301 y 12-12-2018............(current year-2)
901 z 21-07-2019............(current year-1)
111 a 02-07-2020.............current year
222 b 31-12-9999.............future year
333 c 22-12-2025.............future year
mysql试试这个:
SELECT * FROM table1 WHERE dob > NOW() - INTERVAL 3 YEAR;
如果您想从每天的开始获取它,请使用 CURRENT_DATE
。
如果您只想计算年份:
SELECT * FROM table1 WHERE year(dob) >= year(NOW()) - 3;
对于 db2 这应该是正确的语法。
SELECT * FROM table1 WHERE dob > CURRENT DATE - 3 YEARS
如果您希望间隔从一月一日开始:
SELECT * FROM table1 WHERE dob > DATE(RTRIM(CHAR(YEAR(CURRENT DATE)-3)) || '-01-01')
这是我的table。
cid name dob(timstamp dtype)(dd-mm-yyyy)
101 x 11-02-2015
333 c 22-12-2017
301 y 12-12-2018
901 z 21-07-2019
111 a 02-07-2020
222 b 31-12-9999
333 c 22-12-2025
112 c 21-02-2016
这是我的table。我想从当前日期以及未来的生效日期提取过去 3 年的记录。所以我的输出应该是
cid name dob(timstamp dtype)
333 c 22-12-2017............(current year-3)
301 y 12-12-2018............(current year-2)
901 z 21-07-2019............(current year-1)
111 a 02-07-2020.............current year
222 b 31-12-9999.............future year
333 c 22-12-2025.............future year
mysql试试这个:
SELECT * FROM table1 WHERE dob > NOW() - INTERVAL 3 YEAR;
如果您想从每天的开始获取它,请使用 CURRENT_DATE
。
如果您只想计算年份:
SELECT * FROM table1 WHERE year(dob) >= year(NOW()) - 3;
对于 db2 这应该是正确的语法。
SELECT * FROM table1 WHERE dob > CURRENT DATE - 3 YEARS
如果您希望间隔从一月一日开始:
SELECT * FROM table1 WHERE dob > DATE(RTRIM(CHAR(YEAR(CURRENT DATE)-3)) || '-01-01')