Mysql中常见日期查询

来源:互联网 发布:wordcount java实现 编辑:程序博客网 时间:2024/09/21 06:17

最近面试过程中有人问到:”写一个查询最近一星期的数据的sql” . 当时略感懵逼, 感觉日期这块总是很模糊 . 所以这里总结下方便后期学习查看.


1.查询当前详细时间/日期/时间 .

    SELECT NOW();       -- 2017-06-02 09:59:52    SELECT CURDATE();  -- 2017-06-02    SELECT CURTIME();  -- 09:59:52

2.将指定格式转换为日期/时间, 参数也可以是当前时间表达式(now()) .

    SELECT DATE('2015.08.01 00:00:00');  -- 2015-08-01    SELECT TIME('2015-08-01 02:00:00');  -- 02:00:00

3.将当前日期变为天数,常用于最近几天查询 .

    SELECT TO_DAYS(NOW());  -- 736847    -- 所以面试的那个题目可以解决了 :    -- 查询最近7天的数据    SELECT * from paper_respondent_statistic p where TO_DAYS(NOW()) - TO_DAYS(p.submit_time) <= 7;

4.输出指定日期格式 .

     -- 输出本月的月数    SELECT DATE_FORMAT(NOW(),'%y%m');   -- 1706    -- 查询最近一个月数据    SELECT * from paper_respondent_statistic p where DATE_FORMAT(NOW(),'%y%m') = DATE_FORMAT(p.submit_time,'%y%m')

6.DATE_SUB从指定日期减去某时间格式数 .

    -- 七天前的日期数    SELECT DATE_SUB(CURDATE(),INTERVAL 7 DAY) -- 2017-05-26    -- 这种方式也可以完成面试中那道题 .     SELECT * from paper_respondent_statistic p where DATE_SUB(CURDATE(),INTERVAL 7 DAY) - DATE(p.submit_time) <= 7;
原创粉丝点击