美文网首页Java技术分享
MySQL关于时间的一些查询,查询今天,昨天......

MySQL关于时间的一些查询,查询今天,昨天......

作者: 墨迹嘿嘿 | 来源:发表于2020-03-20 14:39 被阅读0次
    查询最近的一条信息
    SELECT column_name(s) FROM table_name WHERE column_name = pattern ORDER BY create_time DESC LIMIT 1;
    

    在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1 会提高查询效率,避免全表扫描。

    查询今天
    SELECT column_name(s) FROM table_name WHERE DATE_FORMAT( create_time,'%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d');
    

    DATE_FORMAT()函数用于以不同的格式显示日期/时间数据

    DATE_FORMAT(date,format)

    date参数是合法的日期。format规定日期/时间的输出格式

    NOW()函数返回当前的日期和时间


    image.png
    SELECT column_name(s) FROM table_name WHERE TO_DAYS(create_time) =TO_DAYS(NOW());
    
    SELECT colum_name(s) FROM table_name WHERE DATE(create_time) =DATE(CURDATE());
    

    DATE()提取日期或日期/时间表达式的日期部分

    image.png image.png
    查询昨天
    SELECT column_name(s) FROM table_name WHERE DATE_FORMAT( create_time,'%Y-%m-%d') = DATE_FORMAT(CURDATE()-1,'%Y-%m-%d');
    
    SELECT column_name(s) FROM table_name WHERE DATE(create_time) =DATE(CURDATE()-1);
    
    输出格式:2017-04-14
    SELECT CURDATE();
    
    输出格式:2017-04-14 13:44:11
    SELECT NOW();
    
    查询一个星期内的数据
    DATE_SUB(date,INTERVAL expr unit) 从日期减去指定的时间间隔
    SELECT column_name(s) FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <=DATE(create_time) ORDER BY create_time DESC;
    
    查询一个月内的数据
    SELECT column_name(s) FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= DATE(create_time) ORDER BY create_time DESC;
    
    返回date的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准
    SELECT DAYOFWEEK(create_time) FROM table_name ORDER BY create_time DESC;
    
    格式化时间
    SELECT DATE_FORMAT(create_time,'%Y-%m-%d') FROM table_name ;
    
    返回当前时间 输出格式:15:17:51
    SELECT CURTIME();
    
    给日期添加指定的时间间隔 DATE_ADD(date,INTERVAL expr unit)
    SELECT column_name(s) FROM table_name WHERE DATE_ADD(create_time,INTERVAL 1 DAY) <= DATE(NOW());
    
    返回两个日期之间的天数 DATEDIFF(expr1,expr2)
    SELECT column_name(s) FROM table_name WHERE DATEDIFF( NOW(),create_time)=0
    

    =0代表查询的是当天,=1 查询的就是昨天……

    相关文章

      网友评论

        本文标题:MySQL关于时间的一些查询,查询今天,昨天......

        本文链接:https://www.haomeiwen.com/subject/dlejyhtx.html