当前位置:网站首页 > 创业 > 正文

Mysql基础函数,常用日期时间函数详解

0 张子豪 张子豪 2025-10-11 07:44 1

MySQL供给了年夜量丰硕的函数,在MySQL的利用中经常会用到各类函数,本文讲解的是常见的MySQL的日期与时候函数,本家儿要用于处置日期和时候值。

东西/原料

  • 电脑
  • mysql情况
  • Navicat等数据库可视化办理东西

方式/步调

  1. 1

    1.获取当前日期和当前时候的函数

    CURDATE()或CURRENT_DATE():获取当前日期函数,返回值按“YYYY-MM-DD”或"YYYYMMDD"格局,格局按照函数在字符串或是数字语境而心猿意马

    CURTIME()或CURRENT_TIME():获取当前时候,返回值按“HH:MM:SS”或"HHMMSS"格局,格局按照函数在字符串或是数字语境而心猿意马

    示例

    SELECT CURDATE(),CURDATE()+0,CURRENT_DATE(),CURTIME(),CURTIME()+0,CURRENT_TIME();

  2. 2

    2.获取当前日期+时候的函数

    CURRENT_TIMESTAMP()或LOCALTIME()或NOW()或SYSDATE():获取当前日期+时候的函数,返回值按“YYYY-MM-DD HH:MM:SS”或"YYYYMMDDHHMMSS"格局,格局按照函数在字符串或是数字语境而心猿意马

    示例

    SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE(),CURRENT_TIMESTAMP()+0,LOCALTIME()+0,NOW()+0,SYSDATE()+0;

  3. 3

    3.通俗时候戳转UNIX时候戳,UNIX时候戳转通俗时候戳函数

    UNIX_TIMESTAMP([d]):通俗时候格局转UNIX时候戳,d为可选项,不填的时辰返当前时候戳

    FROM_UNIXTIME(str):UNIX时候戳转为通俗时候格局。

    示例

    SELECT UNIX_TIMESTAMP(),UNIX_TIMESTAMP(NOW()),NOW(),FROM_UNIXTIME(UNIX_TIMESTAMP());

  4. 4

    4.返回UTC(宿世界尺度时候)日期的函数,返回UTC时候的函数,返回值按“YYYY-MM-DD”或"YYYYMMDD"格局,格局按照函数在字符串或是数字语境而心猿意马

    UTC_DATE():返回UTC(宿世界尺度时候)日期的函数

    UTC_TIME():返回UTC(宿世界尺度时候)时候的函数

    示例

    SELECT UTC_DATE(),UTC_TIME(),UTC_DATE()+0,UTC_TIME()+0;

  5. 5

    5.获取月份的函数

    MONTH(d):获取日期d的月份,阿拉伯值

    MONTHNAME(d):获取日期d的月份,英文值

    示例

    SELECT MONTH(NOW()),MONTHNAME(NOW());

  6. 6

    6.获取礼拜的函数

    DAYNAME(d):获取日期d的英文名称

    DAYOFWEEK(d):获取日期d在一周中的索引,1-周日,2-周一.....7-周六

    WEEKDAY(d):也是获取日期d在一周中的索引,可是索引位置有所分歧,0-周一,1-周二...6-周日

    示例

    SELECT DAYNAME(NOW()),DAYOFWEEK(NOW()),WEEKDAY(NOW());

  7. 7

    7.获取当前是一年中的第几个礼拜函数

    WEEK(d,mode):计较某天位于一年中的第几个礼拜,规模是0-53或1-53

    WEEKOFYEAR(d,mode):计较某天位于一年中的第几个礼拜,规模是1-53,半斤八两于WEEK(d,3);

    mode 的规模

    0 - 周日 - 0~53 - 今年度中有一个周日

    1 - 周一 - 0~53 - 今年度有3天以上

    2 - 周日 - 1~53 - 今年度中有一个周日

    3 - 周一 - 1~53 - 今年度有3天以上

    4 - 周日 - 0~53 - 今年度有3天以上

    5 - 周一 - 0~53 - 今年度有1个周一

    6 - 周日 - 1~53 - 今年度有3天以上

    7 - 周一 - 1~53 - 今年度有1个周一

    示例

    SELECT NOW(),WEEK(NOW()),WEEK(NOW(),0),WEEK(NOW(),1),WEEK(NOW(),3),WEEKOFYEAR(NOW());

  8. 8

    8.获取天数函数

    DOYORYEAR(d):获取日时候d是一年中的第几天,规模是1-366

    DOYOFMONTH(d):获取日期时候d是当月中的第几天,规模是1-31

    DAYOFWEEK(d):获取日期时候d是当周中的第几天,规模是1-7,周日为1,周六为7

    示例

    SELECT NOW(),DAYOFYEAR(NOW()),DAYOFMONTH(NOW()),DAYOFWEEK(NOW());

  9. 9

    9.计较日期的函数

    DATE_ADD(d,INTERVAL expr type):日期加运算,type格局见下文

    ADDDATE(d,INTERVAL expr type):日期加运算,type格局见下文

    DATE_SUB(d,INTERVAL expr type):日期减运算,type格局见下文

    SUBDATE(d,INTERVAL expr type):日期减运算,type格局见下文

    ADDTIME(d,expr):时候加运算

    SUBTIME(d,expr):时候减运算

    DATEDIFF(d1,d2):两个日时代的距离天数

    type的格局

    SECOND 秒 SECONDS 

    MINUTE 分钟 MINUTES 

    HOUR 时候 HOURS 

    DAY 天 DAYS 

    MONTH 月 MONTHS 

    YEAR 年 YEARS 

    MINUTE_SECOND 分钟和秒 "MINUTES:SECONDS" 

    HOUR_MINUTE 小时和分钟 "HOURS:MINUTES" 

    DAY_HOUR 天和小时 "DAYS HOURS" 

    YEAR_MONTH 年和月 "YEARS-MONTHS" 

    HOUR_SECOND 小时, 分钟, "HOURS:MINUTES:SECONDS" 

    DAY_MINUTE 天, 小时, 分钟 "DAYS HOURS:MINUTES" 

    DAY_SECOND 天, 小时, 分钟, 秒 "DAYS HOURS:MINUTES:SECONDS"

    示例

    SELECT NOW(),DATE_ADD(NOW(),INTERVAL 2 DAY),ADDDATE(NOW(),INTERVAL 300 SECOND);#当前时候添加两天,添加300秒

    SELECT NOW(),DATE_SUB(NOW(),INTERVAL 1 MONTH),SUBDATE(NOW(),INTERVAL 300 MINUTE);#当前时候削减一个月,削减300分钟

    SELECT NOW(),ADDTIME(NOW(),'1:1:1'),SUBTIME(NOW(),'2:2:2');#当前时候添加1小时1分1秒,当前时候削减2小时2分2秒

    SELECT NOW(),DATEDIFF(NOW(),DATE_ADD(NOW(),INTERVAL 1 YEAR));#计较当前时候与一年后当前时候的日期差

  10. 10

    10.日期格局化函数

    日期格局化通配符申明

    %a : 工作日的缩写(Sun,Mon,...Sat)

    %b : 月份的缩写(Jun,Feb,...,Dec)

    %c : 数字形式的月份(1,...,12)

    %D : 带有英文后缀的该月日期(1st,2nd,3rd....)

    %d : 数字形式的日期,不足两位前方补零(01,02,...,31)

    %e : 数字形式的日期(1,...,31)

    %f : 微秒

    %H : 以24小时制暗示当前是几多点,不足两位前方补零(01,02,...,24)

    %h,%I: 以12小时制暗示当前是几多点,不足两位前方补零(01,02,...,12)

    %i : 数字形式的分钟(00,01,...,59)

    %j : 一年中的第几天(001,...,366)

    %k : 以24小时制暗示当前是几多点(1,2,...,24)

    %l : 以12小时制暗示当前是几多点(1,2,...,12)

    %M : 月份名称(Junuary,...,December)

    %m : 月份名称数字形式(01,...,12)

    %p : AM/PM

    %r : 时候(12小时制,如9:00:00 AM)

    %S,%s : 秒的数字形式(00,01,...,59)

    %T : 时候(24小时制,如9:00:00)

    %U : 第几周(00,53),周日为第一天

    %u : 第几周(00,53),周一为第一天

    %V : 第几周(01,53),周一为第一天,和%X一路利用

    %v : 第几周(01,53),周一为第一天,和%x一路利用

    %W : 工作日名称(周日,周一...)

    %w : 一周中的每日(0=周日...6=周六)

    %X : 该周的年份,周日为第一天,数字形式4位数,和%V一路用

    %x : 该周的年份,周一为第一天,数字形式4位数,和%v一路用

    %Y : 4位数字形式的年份

    %y : 2位数字形式的年份

    %% :%符号

    DATE_FORMAT():日期格局化函数

    示例

    SELECT DATE_FORMAT(NOW(),'%Y %m %d'),DATE_FORMAT(NOW(),'%X %V');

注重事项

  • 本文并没有讲解所有的时候日期函数,而是挑了部门常用的讲解。
  • 学无尽头

来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!


本文链接:https://www.ibaiwen.com/web/219338.html

张子豪

张子豪

TA很懒,啥都没写...

@百闻娱乐 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2024343649号 | (地图