SELECT all records that are 30 days old

后端 未结 4 714
盖世英雄少女心
盖世英雄少女心 2020-12-11 22:57

I need to SELECT all records that are 30 days old. I have the code below but it\'s not working. In updatestatus I have dates like 12/26/2011. I create a 30 day old date like

4条回答
  •  心在旅途
    2020-12-11 23:04

    If the datatype of updatestatus is date:

    SELECT * 
    FROM people 
    WHERE updatestatus <= '2012-01-01'
    

    or:

    SELECT * 
    FROM people 
    WHERE updatestatus <= CURRENT_DATE() - INTERVAL 1 MONTH
    

    If the datatype is datetime or timestamp and you want to check the time part, too:

    SELECT * 
    FROM people 
    WHERE updatestatus <= NOW() - INTERVAL 1 MONTH
    

    You can put an exact datetime instead of the NOW() - INTERVAL 1 MONTH. The correct way depends on how you are storing the datetimes or timestamps (does the Perl code or MySQL creates them in the first place?).

    You could also put - INTERVAL 30 DAY which yield slightly different results.

提交回复
热议问题