我需要过去 30 天内添加到此数据库的杂志。我尝试过以下方法:
SELECT A.TITLE, A.EDITION, B.DONATEDBY, B.DATE_ADDED
FROM LIBRARY A
JOIN LIB_COPIES B ON A.IDNO=B.IDNO
WHERE A.TYPE LIKE '%Magazine%'
AND B.DONATEDBY LIKE '%State%'
AND B.DATE_ADDED>CURRENT_DATE-31
ORDER BY B.DATE_ADDED
从今天起它没有获得任何条目。
我已经尝试过
DATEDIFF(dateColumn, CURRENT_TIMESTAMP) BETWEEN 0 AND 30
AND >= DATEADD(day, -30, GETDATE())
我是新手,如果格式错误请原谅我。我把 B.Date_added
放在我认为应该放在的地方,因为这是我的专栏。
请帮助我!
最佳答案
假设您使用的是 MySQL,CURRENT_DATE-31
不会从当前日期减去 31 天。相反,它将 CURRENT_DATE
转换为整数并减去 31。
select CURRENT_DATE, CURRENT_DATE - 31;
CURRENT_DATE CURRENT_DATE - 31
2020-01-10 20200079
相反,请使用date_sub(current_date, interval 31 day)
.
select CURRENT_DATE, date_sub(CURRENT_DATE, interval 31 day);
CURRENT_DATE date_sub(CURRENT_DATE, interval 31 day)
2020-01-10 2019-12-10
或者,如果您的意思是 1 个月,请使用间隔 1 个月
。
DATEDIFF(dateColumn,CURRENT_TIMESTAMP) BETWEEN 0 AND 30
不起作用,因为当 dateColumn
是过去时,差异将为负数。
select DATEDIFF("2020-01-01",current_date);
DATEDIFF("2020-01-01",current_date)
-9
相反,颠倒日期的顺序。
select DATEDIFF(current_date, "2020-01-01")
DATEDIFF(current_date, "2020-01-01")
9
关于sql - 需要图书馆数据库中最近 30 天的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59690007/