• mysql查询时间段


    前言

    阅读需要 3 分钟

    内容:mysql 时间段查询、一些时间的类型、及常用时间函数

    几个日期类型

    日期类型 存储空间 日期格式 日期范围
    datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
    timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
    date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
    year 1 bytes YYYY 1901 ~ 2155
    
    CREATE TABLE `t_ian_test` (
                              `id` bigint(20) NOT NULL,
                              `name` varchar(64) NOT NULL,
                              `startTime` datetime NOT NULL,
                              `endTime` datetime NOT NULL,
                              PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    INSERT INTO `t_ian_test` VALUES (1, '牛', '2018-01-21 10:20:09', '2018-01-21 10:20:09');
    INSERT INTO `t_ian_test` VALUES (2, '年', '2021-01-29 10:20:30', '2021-01-29 10:20:30');
    INSERT INTO `t_ian_test` VALUES (3, '大', '2021-01-28 19:47:37','2021-01-28 19:47:37');
    INSERT INTO `t_ian_test` VALUES (4, '吉', '2021-01-28 19:51:01','2021-01-28 19:51:01');
    

    查询时间段

    查询 28 号这天的所有数据 - fail

    select * from t_ian_test where  startTime between '2021-01-28' and '2021-01-28';
    
    select * from t_ian_test where  startTime between '2021-01-28 00:00:00' and '2021-01-28 00:00:00';
    
    

    查询 28 号这天的所有数据 - success

    select * from t_ian_test where  startTime between '2021-01-28 19:47:37' and '2021-01-28 19:51:01';
    

    查询 28 号这天的所有数据 - success

    select * from t_ian_test where  startTime between '2021-01-28' and '2021-01-29';
    

    查询 28 号这天的所有数据 - success

    select * from t_ian_test where startTime between '2021-01-28' and date_add('2021-01-28', interval 1 day);
    

    获取系统当前时间的函数:

    select CURDATE();

    select NOW();

    获取时间差的函数:

    period_diff()

    datediff(date1,date2)

    timediff(time1,time2)

    日期加减函数:

    date_sub() 、adddate()、addtime()、period_add(P,N)

    # 加1天
    select date_add(now(), interval 1 day);
    
    #加1小时
    select date_add(now(), interval 1 hour);
    
    # 加1分钟
    select date_add(now(), interval 1 minute);
    
    #加1秒
    select date_add(now(), interval 1 second);
    
    #加1毫秒
    select date_add(now(), interval 1 microsecond);
    
    #加1周
    select date_add(now(), interval 1 week);
    
    #加1月
    select date_add(now(), interval 1 month);
    
    #加1季
    select date_add(now(), interval 1 quarter);
    
    #加1年
    select date_add(now(), interval 1 year);
    
    

    时间格式转化函数:

    date_format(date, format)

    str_to_date(str, format)

    unix_timestamp()

    from_unixtime(unix_timestamp, format)

  • 相关阅读:
    12-单表查询
    11-数据的增删改
    10-外键的变种 三种关系
    09-完整性约束
    08-数据类型(2)
    07-数据类型
    06-表的操作
    05-库的操作
    Spring:(六) 代理模式
    Spring:(五) 注解
  • 原文地址:https://www.cnblogs.com/uniquezhangqi/p/14348741.html
Copyright © 2020-2023  润新知