Mysql中常见日期查询

最近面试过程中有人问到:”写一个查询最近一星期的数据的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;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值