zoukankan      html  css  js  c++  java
  • MySQL的日期和时间处理函数

    常用的日期和时间处理函数

    函数 说明
    adddate() 增加一个日期
    addtime() 增加一个时间
    curdate() 返回当前日期
    curtime() 返回当前时间
    date() 返回日期时间的日期部分
    datediff() 计算两个日期之差
    date_add() 高度灵活的日期计算函数
    date_format() 返回一个格式化的日期和时间串
    day() 返回一个日期的天数部分
    dayofweek() 对于一个日期返回对应的星期几
    hour() 返回一个时间的小时部分
    minute() 返回一个时间的分钟部分
    month() 返回一个日期的月份部分
    second() 返回一个日期的秒部分
    time() 返回一个日期时间的时间部分
    year() 返回一个日期的年份部分
    now() 返回当前的日期和时间

    adddate()

       大致可以分为两类用法,第一种,第一个参数为日期,第二个参数为整数时,这时代表的意思是在在此日期基础上增加的天数。

    例如:

    select ADDDATE('2021-11-07',5);

    第二种:是第一参数为日期,第二个参数为任意时间表达式,该表达式可为多少分钟、或者多少毫秒、亦或者多少周等等。第二个参数的写法为 interval 空格  一个整型的时间量  空格 时间单位

    例如:

    select ADDDATE('2021-11-07',interval 6243150562 second );

    select ADDDATE('2021-11-07',interval 5 week );

    select ADDDATE('2021-11-07',interval 2 quarter); --增加半年

    addtime()

     用法:共有两个参数,第一个参数是要被添加的日期或时间,第二个参数是增加的时间

    SELECT ADDTIME('1999-12-31 23:59:59.999999','1 1:1:1.000002');

    curdate()

    返回的是当前服务器日期

    select curdate();

    curtime()

    返回当前服务器的时间信息

    select curtime();

    date()

    将含有日期和时间的参数返回日期部分

    select date('2021-07-07 11:11:20');

    datediff()

    计算两个时间的日期差值,共有两个日期时间参数,会拿第一个参数的日期部分减去第二个参数的日期部分,如果第一个参数的时间比第二个参数的时间靠后(通俗点说就是值大)那么差值就是正数,否则为负数

    select datediff('2021-11-10 11:11:20','2021-11-07 19:13:21');

    select datediff('2021-11-10 11:11:20','2021-12-07 19:13:21');

    date_add()

    这是个灵活的日期计算函数。这个函数有两个参数,第一个参数是要被添加的日期或时间,第二个参数则要自由了很多,可以是毫秒,秒,分,时,星期,年,季度,等等基本可以表示时间的单位,也可以为负数进行减去时间

    例如

    SELECT DATE_ADD('1998-01-01 00:00:00',INTERVAL '-3 20' DAY_HOUR);--表示的是在1998年1月1日,减去3天零20个小时

    --cast函数一个转换的函数,CAST(6/4 AS DECIMAL(3,1))是转换成小数,值为1.5。HOUR_MINUTE的意思为几小时几分钟,小时与分钟之间
    --可以是等号,空格,下划线,小数点等等符号。那么1.5 HOUR_MINUTE就代表一个小时五分钟
    SELECT DATE_ADD('1970-01-01 12:00:00',   INTERVAL CAST(6/4 AS DECIMAL(3,1)) HOUR_MINUTE);

    date_format()

    日期格式化函数是根据格式字符串格式化日期值。以下说明符可以在格式字符串中使用。格式说明符前必须有%字符。date_format(日期,格式化符号);

    %a 缩写星期名(Sun..Sat)
    %b 缩写月名 (Jan..Dec)
    %c 月,数值(0..12)
    %D 带有英文前缀的月中的天(0th, 1st, 2nd, 3rd, …)
    %d 月的天,数值(00-31)
    %e 月的天,数值(0-31)
    %f 微秒(000000..999999)
    %H 小时 (00-23)
    %h 小时 (01-12)
    %I 小时 (01-12)
    %i 分钟,数值(00-59)
    %j 年的天 (001-366)
    %k 小时 (0-23)
    %l 小时 (1-12)
    %M 月名 (January..December)
    %m 月,数值(00-12)
    %p AM 或 PM
    %r 时间,12-小时(hh:mm:ss AM 或 PM)
    %S 秒(00-59)
    %s 秒(00-59)
    %T 时间, 24-小时 (hh:mm:ss)
    %U 周 (00-53) 星期日是一周的第一天
    %u 周 (00-53) 星期一是一周的第一天
    %V 周 (01-53) 星期日是一周的第一天,与 %X 使用
    %v 周 (01-53) 星期一是一周的第一天,与 %x 使用
    %W 星期名(Sunday..Saturday)
    %w 周的天 (0=星期日, 6=星期六)
    %X 年,其中的星期日是周的第一天,4 位,与 %V 使用
    %x 年,其中的星期一是周的第一天,4 位,与 %v 使用
    %Y 年,4 位
    %y 年,2 位

    例如:

    SELECT DATE_FORMAT('2021-11-10 22:23:00', '%W %M %Y');

    day()

    该函数返回一个时间的天数部分,用法 day(时间);与dayofmonth()函数等价

    SELECT day('2021-11-10 23:59:59.999999');

    dayofweek()

    该函数返回一个时间对应的星期几,用法 dayofweek(时间);

    SELECT dayofweek('2021-11-10 23:59:59.999999');

    dayofyear()

    该函数是返回一年该日期在此年中第多少天

    SELECT dayofyear('2021-02-10 23:59:59.999999');

    hour()

    该函数返回此时间的小时部分

    SELECT hour('2021-02-10 23:59:59.999999');

    minute()

    该函数返回此时间的分钟部分

    SELECT minute('2021-02-10 23:59:59.999999');

    month()

    该函数返回此时间的月份部分

    SELECT month('2021-02-10 23:59:59.999999');

    second()

    该函数返回时间的秒数部分

    SELECT second('2021-02-10 23:59:59.999999');

    time()

    该函数返回日期时间的时间部分

    SELECT time ('2021-02-10 23:59:59.999999');

    year()

    该函数返回日期时间的年份部分

    SELECT year ('2021-02-10 23:59:59.999999');

    now()

    该函数返回当前的日期时间

    select now();

    生于忧患,死于安乐
  • 相关阅读:
    Request功能
    Request继承体系
    HTTP协议:请求消息的数据格式---Request
    HTTP协议---HttpServlet
    hdu 1575 矩阵连乘2
    hdu 1005 Number Sequence(矩阵连乘+二分快速求幂)
    矩阵连乘
    MongoDB(六):选择字段、限制记录数、排序记录
    MongoDB(五):更新文档、删除文档
    爬虫(八):文件处理
  • 原文地址:https://www.cnblogs.com/songlove/p/15521540.html
Copyright © 2011-2022 走看看