Mysql中的相对日期比较

时间:2014-04-07 15:26:24

标签: mysql

我需要选择在过去10天内添加的所有ID,例如:

  SELECT ID FROM my_table WHERE reg_date>NOW()-10days, $link);

列reg_date采用DATE格式。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

SELECT ID FROM my_table WHERE reg_date >= CURDATE() - INTERVAL 10 DAY

这是CURDATE(),因为NOW()包含了时间,因此您可能会错过在午夜和执行查询之间添加的行。

此外,您错过了INTERVAL关键字,DAY而不是DAYS,因为它是一个单位。

答案 1 :(得分:0)

尝试以下查询:

SELECT 
    `id`
FROM 
    `my_table` 
WHERE 
    DATE_ADD(NOW(), INTERVAL 5 DAY) >= `reg_date` AND NOW() <= `reg_date`

答案 2 :(得分:0)

SELECT ID FROM my_table WHERE DATE_SUB(CURDATE(),INTERVAL 10 DAY) <= reg_date;