如何在过去30天内显示SQL日期?

时间:2016-12-22 15:55:44

标签: sql date

我想仅在过去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的位置,但它无法正常工作。有什么想法吗?

3 个答案:

答案 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())