当前位置: 首页 > news >正文

MySQL 【日期】函数大全(二)

DATE_ADDDATE_FORMATDATE_SUBDATEDIFF
DAYDAYNAMEDAYOFMONTHDAYOFWEEK
1、DATE_ADD

DATE_ADD(date, value) :在指定的日期/时间上加上指定的时间间隔加并返回新的日期/时间。

DATE_ADD(date, value)

DATE_ADD(date, INTERVAL value unit)

date:需要操作的日期。

value:时间/日期间隔。正数和负数都是允许的。

unit:时间/日期间隔的单位。

间隔单位: 

MICROSECOND

SECONDMINUTEHOUR
DAYWEEKMONTHQUARTER
YEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECOND
HOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECOND
DAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
  • 如果 date 参数是 DATE 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATE
  • 如果 date 参数是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS,返回 DATETIME
  • 如果 date 参数是 DATETIME 类型,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且计算只涉及 HOURSMINUTES 和 SECONDS 部分,返回 TIME。(开始于 MySQL 8.0.28)
SELECTDATE_ADD('2020-06-10', INTERVAL 10 DAY),DATE_ADD('2020-06-10', INTERVAL 10 HOUR)

SELECTDATE_ADD('2020-06-10 10:00:00', INTERVAL 10 HOUR),DATE_ADD('2020-06-10 10:00:00', INTERVAL 10 MINUTE)

SELECTDATE_ADD(CURDATE(), INTERVAL 10 HOUR),DATE_ADD(NOW(), INTERVAL 10 MINUTE)

2、DATE_FORMAT

DATE_FORMAT(date, format) :按照指定的格式格式化日期时间。

符号说明
%a星期的缩写 (Sun..Sat)
%b月份的缩写 (Jan..Dec)
%c月份数字 (0..12)
%D带有英语前缀的月份中的每天 (0th1st2nd3rd, …)
%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)
%pAM 或者 PM
%r十二小时制时间 (hh:mm:ss 后跟 AM 或 PM)
%S秒 (00..59)
%s秒 (00..59)
%T二十四小时制时间 (hh:mm:ss)
%U一年中的星期 (00..53), 每周的开始是星期天; WEEK() 函数中的 mode 0
%u一年中的星期 (00..53), 每周的开始是星期一; WEEK() 函数中的 mode 1
%V一年中的星期 (01..53), 每周的开始是星期天; WEEK() 函数中的 mode 2, 用于 %X
%v一年中的星期 (01..53), 每周的开始是星期一; WEEK() 函数中的 mode 3, 用于 %x
%W星期的名称 (Sunday..Saturday)
%w星期中的每天 (0=星期天..6=星期六)
%X一年中的星期,每周的开始是星期天,四位数字,用于 %V
%x一年中的星期,每周的开始是星期一,四位数字,用于 %v
%Y四位数字年份
%y两位数字年份
%%转义 %
%xx, 上面为列举的其他字符
SELECTDATE_FORMAT('2022-02-28', '%Y'),DATE_FORMAT('2014-02-28', '%W'),DATE_FORMAT('2022-02-01', '%M %d, %Y'),DATE_FORMAT('2022-02-01', '%M %e %Y'),DATE_FORMAT('2022-02-28', '%W, %M %e, %Y')

SELECT NOW(), DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%S')

3、DATE_SUB

DATE_SUB(date, INTERVAL value unit) :在指定的日期/时间上减去指定到时间间隔加并返回新的日期/时间。

date:需要操作的日期。

days:在 date 上减去的天数。

value:时间/日期间隔。正数和负数都是允许的。

unit:时间/日期间隔的单位。

间隔单位: 

MICROSECOND

SECONDMINUTEHOUR
DAYWEEKMONTHQUARTER
YEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECOND
HOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECOND
DAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH
  • 如果 date 参数是 DATE 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATE
  • 如果 date 参数是 DATE 类型,并且时间间隔为 HOURSMINUTES 或者 SECONDS,返回 DATETIME
  • 如果 date 参数是 DATETIME 类型,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且时间间隔为 YEARMONTH 或者 DAY,返回 DATETIME
  • 如果 date 参数是 TIME 类型,并且计算只涉及 HOURSMINUTES 和 SECONDS 部分,返回 TIME。(开始于 MySQL 8.0.28)
SELECTDATE_SUB('2020-06-10', INTERVAL 10 DAY),DATE_SUB('2020-06-10', INTERVAL 10 HOUR)

SELECTDATE_SUB('2020-06-10 10:00:00', INTERVAL 10 HOUR),DATE_SUB('2020-06-10 10:00:00', INTERVAL 10 MINUTE)

SELECTDATE_SUB(CURDATE(), INTERVAL 10 HOUR),DATE_SUB(NOW(), INTERVAL 10 MINUTE)

4、DATEDIFF

DATEDIFF(date1, date2) :返回两个日期值之间的天数。

  • DATEDIFF() 函数只比较 date1 和 date2 的日期部分。如果 date1 的日期晚于 date2 的日期,它返回一个正数,否则返回一个负数或者 0。
  • 如果指定的表达式不是一个合法的日期或者日期时间,DATEDIFF() 函数将返回 NULL
  • 如果参数为 NULLDATEDIFF() 函数将返回 NULL
SELECTDATEDIFF('2022-02-28', '2022-02-28') AS A,DATEDIFF('2022-02-28', '2022-02-28 10:10:10')  AS B,DATEDIFF('2022-02-28 10:10:10', '2022-02-28')  AS C,DATEDIFF('2022-02-28', '2022-02-27')  AS D,DATEDIFF('2022-02-28', '2022-02-27 10:10:10')  AS E,DATEDIFF('2022-02-28 10:10:10', '2022-02-27')  AS F,DATEDIFF('2022-02-30', '2022-02-28 10:10:10')  AS G,DATEDIFF('Not A DATEDIFF', 'Not A DATEDIFF') AS H,DATEDIFF(NULL, '2022-02-28') AS I

SELECT DATEDIFF(NOW(), '2024-02-28');

SELECTDATEDIFF(NOW(), '2024-02-28'),DATEDIFF(CURDATE(), '2024-02-28'),DATEDIFF(CURRENT_DATE(), '2024-02-28'),DATEDIFF(SYSDATE(), '2024-02-28')

5、DAY

DAY(expr) :返回日期时间表达式中的代表月份中的一天的数字。此函数等同于 DAYOFMONTH() 函数。

  • 代表月份中的一天的数字,从 1 到 31。
  • 如果给定的日期的天的部分为 0 ,比如: '0000-00-00' 和 '2008-00-00'DAY() 函数将返回 0
  • 如果指定的表达式不是一个合法的日期或者日期时间,DAY() 函数将返回 NULL
  • 如果参数为 NULLDAY() 函数将返回 NULL
SELECTDAY('2022-02-28'),DAY('2022-02-28 10:10:10'),DAY(NOW()),DAY('2022-02-00'),DAY('2022-02-30'),DAY('Not A DATE'),DAY(NULL)

6、DAYNAME

DAYNAME(expr) :返回给定日期的工作日名称。

  • 返回值将是以下值中的一个: MondayTuesdayWednesdayThursdayFridaySaturdaySunday
  • 如果指定的表达式不是一个合法的日期或者日期时间,DAYNAME() 函数将返回 NULL
  • 如果参数为 NULLDAYNAME() 函数将返回 NULL
SELECTDAYNAME('2024-02-21'),DAYNAME('2024-02-23'),DAYNAME(NOW()),DAYNAME('2024-02-00'),DAYNAME('2024-02-30'),DAYNAME('Not A DATE'),DAYNAME(NULL)

SELECTDAYNAME(NOW()),DAYNAME(CURDATE()),DAYNAME(CURRENT_DATE()),DAYNAME(SYSDATE())

7、DAYOFMONTH

DAYOFMONTH(expr) :返回日期时间表达式中的代表月份中的一天的数字。此函数等同于DAY() 函数。

  • 代表月份中的一天的数字,从 1 到 31。
  • 如果给定的日期的天的部分为 0 ,比如: '0000-00-00' 和 '2008-00-00'DAY() 函数将返回 0
  • 如果指定的表达式不是一个合法的日期或者日期时间,DAY() 函数将返回 NULL
  • 如果参数为 NULLDAY() 函数将返回 NULL

SELECTDAYOFMONTH('2022-02-28'),DAYOFMONTH('2022-02-28 10:10:10'),DAYOFMONTH(NOW()),DAYOFMONTH('2024-02-00'),DAYOFMONTH('2022-02-30'),DAYOFMONTH('Not A DATE'),DAYOFMONTH(NULL)

8、DAYOFWEEK

DAYOFWEEK(expr) :返回给定日期的工作日的索引。

返回一个从 1 到 7 之间的数字,代表的含义如下:

  • 1 - 星期天
  • 2 - 星期一
  • 3 - 星期二
  • 4 - 星期三
  • 5 - 星期四
  • 6 - 星期五
  • 7 - 星期六

如果指定的表达式不是一个合法的日期或者日期时间,DAYOFWEEK() 函数将返回 NULL

如果参数为 NULLDAYOFWEEK() 函数将返回 NULL

SELECTDAYOFWEEK('2024-02-21'),DAYOFWEEK('2024-02-22'),DAYOFWEEK('2024-02-00'),DAYOFWEEK('2024-02-30'),DAYOFWEEK('Not A DATE'),DAYOFWEEK(NULL)


http://www.mrgr.cn/news/48522.html

相关文章:

  • 【android studio】Gradle和Gradle插件版本关系和配置示例
  • 远程监控控制器(RMC)系统详解
  • 使用3080ti配置安装blip2
  • 面试技术点
  • Anaconda常用命令分享
  • 【Codeforces】CF 2020 D
  • plpo vue实战版教程
  • OAuth2.1的code_challenge和code_vertifier理解
  • 五子棋项目自动化测试
  • 电脑无线网wifi和有线网同时使用(内网+外网同时使用)
  • 【Linux 从基础到进阶】防止数据泄露的策略与工具
  • 【WebGIS】Cesium:天地图加载
  • 每日OJ题_牛客_比那名居的桃子_滑动窗口/前缀和_C++_Java
  • C语言—双链表
  • 科大讯飞嵌入式面试题及参考答案
  • c++ 多线程全局变量安全操作------原子操作
  • 网工内推 | 初级网工,Base北京,IE认证优先,最高14K+餐补
  • Feign的使用
  • 【专题】智启未来:新质生产力引擎驱动下的智能制造行业革新报告合集PDF分享(附原数据表)
  • 邮件营销案例成功技巧:如何打动目标客户?