• MySQL 日期函数大全(更新中.....)


    作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主


    sql

    -- phpMyAdmin SQL Dump
    -- version 4.8.5
    -- https://www.phpmyadmin.net/
    --
    -- 主机: localhost
    -- 生成日期: 2022-11-06 18:14:31
    -- 服务器版本: 5.7.26
    -- PHP 版本: 7.3.4
    
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
    
    --
    -- 数据库: `a`
    --
    
    -- --------------------------------------------------------
    
    --
    -- 表的结构 `customers`
    --
    
    CREATE TABLE `customers` (
      `id` int(11) NOT NULL COMMENT '主键id',
      `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL COMMENT '名字',
      `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间'
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    
    --
    -- 转存表中的数据 `customers`
    --
    
    INSERT INTO `customers` (`id`, `name`, `time`) VALUES
    (1, '12346789', '2022-11-06 08:16:11');
    
    --
    -- 转储表的索引
    --
    
    --
    -- 表的索引 `customers`
    --
    ALTER TABLE `customers`
      ADD PRIMARY KEY (`id`);
    
    --
    -- 在导出的表使用AUTO_INCREMENT
    --
    
    --
    -- 使用表AUTO_INCREMENT `customers`
    --
    ALTER TABLE `customers`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', AUTO_INCREMENT=2;
    COMMIT;
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    ADDDATE()

    SELECT ADDDATE("2017-06-15",INTERVAL 10 DAY);
    
    • 1

    解析:增加10天到这个日期上2017-06-15

    在这里插入图片描述

    ADDTIME()

    SELECT ADDTIME("2011-11-11 11:11:11",5);
    
    • 1

    解析:增加五秒钟到第一个参数的日期上"2011-11-11 11:11:11"

    在这里插入图片描述

    ADDTIME()

    SELECT ADDTIME("2020-06-15 09:34:21", "2:10:5"); 
    
    • 1

    解析:增加 2 小时, 10 分钟, 5 秒到第一个参数的日期上.

    在这里插入图片描述

    curdate()

    SELECT curdate();
    
    • 1

    解析:显示当前日期

    在这里插入图片描述

    CURRENT_DATE()

    SELECT CURRENT_DATE();
    
    • 1

    解析:显示当前日期

    在这里插入图片描述

    CURRENT_TIME()

    SELECT CURRENT_TIME();
    
    • 1

    解析:显示当前时间

    在这里插入图片描述

    CURRENT_TIMESTAMP()

    SELECT CURRENT_TIMESTAMP();
    
    • 1

    解析:显示当前日期+时间

    在这里插入图片描述

    curtime()

    SELECT curtime();
    
    • 1

    解析:显示当前时间

    在这里插入图片描述

    date()

    SELECT DATE("2017-06-15"); 
    
    • 1

    解析:从日期或日期时间表达式中提取日期值

    在这里插入图片描述

    DATEDIFF()

    SELECT DATEDIFF('2001-01-01','2001-02-02')
    
    • 1

    解析:计算日期 d1->d2 之间相隔的天数

    在这里插入图片描述

    date_add()

    SELECT date_add("2017-06-15",INTERVAL 10 DAY);
    
    • 1

    解析:加10天到第一个参数日期上

    在这里插入图片描述

    SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL 15 MINUTE);
    
    • 1

    解析:加15分钟到第一个参数日期上

    在这里插入图片描述

    SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL -3 HOUR);
    
    • 1

    解析:加-3小时到第一个参数日期上

    在这里插入图片描述

    SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL -3 MONTH);
    
    • 1

    解析:加-3个月到第一个参数的日期上

    在这里插入图片描述

    DATE_FORMAT()

    SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')
    
    • 1

    解析:以年-月-日这种格式输出。%r代码am还是pm。am表示凌晨和上午,pm表示下午和晚上。(0:00-12:00)。

    在这里插入图片描述

    SELECT DATE_FORMAT('2011-11-11 23:11:11','%Y-%m-%d %r')
    
    • 1

    解析:以年-月-日这种格式输出。%r代码am还是pm。am表示凌晨和上午,pm表示下午和晚上。12:01-24:00)。
    在这里插入图片描述

    date_sub()

    SELECT time,date_sub(time,INTERVAL 2 DAY) as timedate from customers;
    
    • 1

    解析:date_sub(time,INTERVAL 2 DAY)的意思是当前time字段时间减去两天.就成了2022-11-04 16:16:11.原本是2022-11-06 16:16:11

    在这里插入图片描述

    day()

    SELECT day("2017-06-15");
    
    • 1

    解析:输出日,不输出年 月

    在这里插入图片描述

    DAYNAME()

    SELECT DAYNAME('2011-11-11 11:11:11');
    
    • 1

    看这个日期是星期几呢?2011-11-11 11:11:11

    在这里插入图片描述

    DAYOFMONTH()

    SELECT DAYOFMONTH('2011-11-11 11:11:11');
    
    • 1

    输出这个日期是2011-11-11 11:11:11是11月的第几天

    在这里插入图片描述

    DAYOFWEEK()

    SELECT DAYOFWEEK('2011-11-11 11:11:11');
    
    • 1

    解析:这个(2011-11-11 11:11:11)日期 day今天是星期几,1 星期日,2 星期一,以此类推

    在这里插入图片描述

    DAYOFYEAR()

    SELECT DAYOFYEAR('2011-11-11 11:11:11')
    
    • 1

    解析:计算2011年11月11日这个日期是2011年的第几天

    在这里插入图片描述

    EXTRACT()

    SELECT EXTRACT(MINUTE FROM '2011-11-11 11:33:11') 
    
    • 1

    计算2011-11-11 11:33:11这个日期时间的分钟时多少呢?

    在这里插入图片描述

    FROM_DAYS()

    SELECT FROM_DAYS(1111);
    
    • 1

    解析:计算从 0000 年 1 月 1 日开始 1111天后的日期

    在这里插入图片描述

    hour()

    SELECT hour('1:2:3');
    
    • 1

    解析: t 中的小时值。小时1,2分钟,3秒

    在这里插入图片描述

    LAST_DAY()

    SELECT LAST_DAY("2017-06-20");
    
    • 1

    解析:给定日期的那一月份(6月份)的最后一天

    在这里插入图片描述

    LOCALTIME()

    SELECT LOCALTIME()
    
    • 1

    解析:输出当前日期和时间
    在这里插入图片描述

    LOCALTIMESTAMP()

    SELECT LOCALTIMESTAMP()
    
    • 1

    解析:返回当前日期和时间

    在这里插入图片描述

    makedate()

    SELECT makedate(2017, 3);
    
    • 1

    解析:2017年第三天是什么日期

    在这里插入图片描述

    maketime()

    SELECT maketime(11,35,4);
    
    • 1

    解析:组合时间,参数分别为第一个参数:小时、第二个参数:分钟、第三个参数:秒

    在这里插入图片描述

    MICROSECOND()

    SELECT MICROSECOND("2017-06-20 09:34:00.000023");
    
    • 1

    解析:日期参数所对应的微秒数

    在这里插入图片描述

    minute()

    SELECT minute("1:2:3");
    
    • 1

    解析:输出分钟。第一个参数小时。第二个参数分钟。第三个参数秒
    在这里插入图片描述

    MONTHNAME()

    SELECT MONTHNAME('2011-11-11 11:11:11');
    
    • 1

    解析:输出月的信息(英文)
    在这里插入图片描述

    MONTH()

    SELECT MONTH('2011-11-11 11:11:11');
    
    • 1

    解析:返回日期中的月份值,1 到 12

    在这里插入图片描述

    now()

    SELECT now();
    
    • 1

    解析:当前日期和时间

    在这里插入图片描述

    PERIOD_ADD()

    SELECT PERIOD_ADD(201703,5);
    
    • 1

    解析:第一个参数意思:2017年3月增加五个月

    在这里插入图片描述

    period_diff()

    SELECT period_diff(201710, 201703);
    
    • 1

    解析:第一个参数2017年10月减去第二个参数2017年3月的值

    在这里插入图片描述

    quarter()

    SELECT quarter('2011-11-11 11:11:11');
    
    • 1

    解析:输出日期时间是第几季节,返回 1 到 4.代表春夏秋冬四个季节.

    在这里插入图片描述

    second()

    SELECT second("1:2:3");
    
    • 1

    解析:输出秒

    在这里插入图片描述

    SEC_TO_TIME()

    SELECT SEC_TO_TIME(4320)
    
    • 1

    解析:将以秒为单位的时间转换为时分秒的格式

    在这里插入图片描述

    STR_TO_DATE()

    SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");
    
    • 1

    解析:将字符串转变为日期

    在这里插入图片描述

    subdate()

    SELECT subdate('2011-11-11 11:11:11', 1);
    
    • 1

    解析:第一个参数的日期时间减去第二个参数的天数的日期

    在这里插入图片描述

    subtime()

    SELECT subtime('2011-11-11 11:11:11', 5);
    
    • 1

    解析:第一个参数的日期时间减去第二个参数的秒数:5

    在这里插入图片描述

    sysdate()

    SELECT sysdate();
    
    • 1

    解析:输出当前日期和时间

    在这里插入图片描述

    time()

    SELECT time("2011-11-11 19:30:10");
    
    • 1

    解析:输出时间部分,不输出日期部分

    在这里插入图片描述

    time_format()

    SELECT time_format('11:11:11','%r');
    
    • 1

    解析:看第一个参数的时间是am还是pm

    在这里插入图片描述

    time_to_sec()

    SELECT time_to_sec('1:12:00');
    
    • 1

    解析:将时间转换为秒

    在这里插入图片描述

    timediff()

    SELECT timediff("13:10:11", "13:10:10");
    
    • 1

    解析:第一个参数的时间减去第二个参数的时间

    在这里插入图片描述

    timestamp()

    SELECT timestamp("2017-07-23",  "13:10:11");
    
    • 1

    解析:单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和

    在这里插入图片描述

    SELECT TIMESTAMP('2003-12-31 12:00:00','12:00:00');
    
    • 1

    解析:有2个参数时,将参数加和

    在这里插入图片描述

    TIMESTAMPDIFF()

    SELECT TIMESTAMPDIFF(DAY,'2003-02-01','2003-05-01'); 
    
    • 1

    解析: // 计算两个时间相隔多少天

    在这里插入图片描述

    SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
    
    • 1

    解析:// 计算两个时间相隔多少月

    在这里插入图片描述

     SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01'); 
    
    • 1

    解析: 计算两个时间相隔多少年

    在这里插入图片描述

    to_days()

    SELECT to_days('0001-01-01 01:01:01');
    
    • 1

    解析:计算日期距离 0000 年 1 月 1 日的天数

    在这里插入图片描述

    week()

    SELECT week('2011-11-11 11:11:11');
    
    • 1

    解析:计算日期是本年(2011)的第几个星期,范围是 0 到 53

    在这里插入图片描述

    WEEKDAY()

    SELECT WEEKDAY("2017-06-15");
    
    • 1

    解析:日期是星期几,0 表示星期一,1 表示星期二。。。。。

    在这里插入图片描述

    WEEKOFYEAR()

    SELECT WEEKOFYEAR('2011-11-11 11:11:11')
    
    • 1

    解析:计算日期 是本年的第几个星期,范围是 0 到 53
    在这里插入图片描述

    year()

    SELECT YEAR("2017-06-15");
    
    • 1

    解析:输出年份

    在这里插入图片描述

    YEARWEEK()

    SELECT YEARWEEK("2017-06-15");
    
    • 1

    解析:输出年份及第几周(0到53)
    在这里插入图片描述

  • 相关阅读:
    729. 我的日程安排表 I 方法1遍历解的数学思维
    Kafka架构和使用场景
    基于人工表面等离激元周期调制的漏波天线设计
    OceanBase:Zone管理
    css设置字体属性
    Kubernetes 服务发现
    8.系统研发中的领导意志
    [含毕业设计论文+PPT+源码等]ssm家教服务系统小程序+Java后台管理系统|前后分离VUE
    基于springboot实现漫画网站管理系统项目【项目源码+论文说明】
    OMO模式成为教育行业“标配“
  • 原文地址:https://blog.csdn.net/qq_37805832/article/details/127726160