我想仅在过去30天内显示日期。对于我的SQL命令。我有一个名为statement_to_date的DATETIME字段,我想查找过去30天内statement_to_date的所有列。这就是我到目前为止所拥有的:
SELECT Statement_TO_DATE, STATEMENT_FROM_DATE
FROM claim;
SELECT DATE_ADD(NOW(), INTERVAL -30 DAY)
我以为我可以将Statement_TO_DATE插入INTERVAL的位置,但它无法正常工作。有什么想法吗?
答案 0 :(得分:0)
从w3schools,您可以看到您没有正确使用DATE_ADD()
。
同样Gordon Linoff表示您缺少WHERE
子句,请尝试:
SELECT Statement_TO_DATE, STATEMENT_FROM_DATE
FROM claim
WHERE statement_to_date >= DATE_ADD(day, -30, GETDATE());
答案 1 :(得分:0)
您缺少where
子句:
SELECT Statement_TO_DATE, STATEMENT_FROM_DATE
FROM claim
WHERE statement_to_date >= DATE_ADD(NOW(), INTERVAL -30 DAY); -- assumes the value is never in the future
通常,在日期中使用时间跨度时,您不需要当前日期的时间组件。所以,这更典型:
SELECT Statement_TO_DATE, STATEMENT_FROM_DATE
FROM claim
WHERE statement_to_date >= DATE_ADD(CURDATE(), INTERVAL -30 DAY);
请注意,如果您不想要负时间间隔,MySQL也会有DATE_SUB()
。
答案 2 :(得分:-1)
选择DATEADD(月,-1,getdate())