zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    LeetCode链表解题模板
    c++中的new、operator new、placement new
    树的前序、中序、后续、层次遍历的递归和非递归解法
    c++Volatile关键词
    南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
    c++右值引用以及使用
    c++选择重载函数
    从4行代码看右值引用
    被遗忘的C结构体打包技术
    南大算法设计与分析课程OJ答案代码(4)--变位词、三数之和
  • 原文地址:https://www.cnblogs.com/uniquezhangqi/p/14348741.html
Copyright © 2011-2022 走看看