mysql 系统日期函数(SQL函数)(1)

在前面若干章节中,我们介绍了SQL的基础与高阶语法,接下来,我们将分四个章节,介绍MySQL中常见的函数应用,大致分为如下几个章节:

本文将主要介绍MySQL 日期函数。


CURRENT_DATE()

返回当前日期,示例如下:

mysql 系统日期函数(SQL函数)(2)


CURRENT_TIME()

返回当前时间,示例如下:

mysql 系统日期函数(SQL函数)(3)


CURRENT_TIMESTAMP()

返回当前日期和时间,示例如下:

mysql 系统日期函数(SQL函数)(4)


DATEDIFF(date1,date2)

计算日期 date1与 date2 之间相隔的天数。

mysql 系统日期函数(SQL函数)(5)

如上,我们计算'2019-01-01' 相差 '2019-09-17' 天数,相差为 259 天。


DATE_ADD(date,INTERVAL expr type)

计算起始日期 date 加上一个时间间隔后的日期 。

mysql 系统日期函数(SQL函数)(6)

如上,我们在起始日期 '2019-9-17 20:58:10' 加上3天,返回 2019-09-20 20:58:10。

mysql 系统日期函数(SQL函数)(7)

如上,我们在起始日期 '2019-9-17 20:58:10' 加上3分钟 ,返回 2019-09-17 21:01:10。


DATE_SUB(date, INTERVAL expr type)

计算起始日期 date 减去一个时间间隔后的日期 。

mysql 系统日期函数(SQL函数)(8)

如上,我们在起始日期 '2019-9-17 20:58:10' 减去2天,返回 2019-09-15 20:58:10。


DATE_FORMAT(date, format)

按表达式 format 的格式显示日期 date ,示例如下:

mysql 系统日期函数(SQL函数)(9)

如上,我们希望 2019-9-17 20:58:10 按照 '%Y-%m-%d' 格式显示,如显示 2019-09-17。


DAYNAME(date)

返回日期 date 是星期几。

mysql 系统日期函数(SQL函数)(10)

如上,返回 2019-9-17 20:58:10 的星期为 Tuesday 。


DAYOFWEEK(date)

返回日期 date 的星期索引(1=星期天,2=星期一, …7=星期六)。

mysql 系统日期函数(SQL函数)(11)

如上,返回 2019-9-17 20:58:10 所对应的星期的索引为3,即星期二。


DAYOFMONTH(date)

计算日期 date 是本月的第几天。

mysql 系统日期函数(SQL函数)(12)

如上,返回 2019-9-17 20:58:10 为本月的第 17天。


DAYOFYEAR(date)

计算日期 date 是本年的第几天。

mysql 系统日期函数(SQL函数)(13)

如上,返回 2019-9-17 20:58:10 为本年的第 260 天。


WEEKOFYEAR(date)

计算日期 date 是本年的第几个星期,范围是 1到53。

mysql 系统日期函数(SQL函数)(14)

如上,返回 2019-09-17 09:17:44 为第 38 个星期。


EXTRACT(type FROM date)

从日期 date 中获取指定的年、月、日、时、分、秒值,type 指定返回的值,type可取值为:

如下,从日期 2019-9-17 20:58:10 中获取分钟为 58

mysql 系统日期函数(SQL函数)(15)


LAST_DAY(date)

返回给定日期date 中月份的最后一天。

mysql 系统日期函数(SQL函数)(16)

如上,返回 2019-9-17 日期中9月的最后一天为 2019-09-30 。


MAKEDATE(year, day)

返回年份 year 中指定天数所对应的日期。

mysql 系统日期函数(SQL函数)(17)

如上,返回2019年的第 270 天所对应的的日期为 2019-09-27。


QUARTER(date)

返回日期date 是第几季度,返回 1 到 4 。

mysql 系统日期函数(SQL函数)(18)

如上,返回 2019-09-17 09:12:50 为第 3 季度。


SEC_TO_TIME(seconds)

将以秒为单位的时间 seconds 转换为时分秒的格式。

mysql 系统日期函数(SQL函数)(19)

如上,我们将 80000秒转换为时分秒为 22:13:20 。


TIME_TO_SEC(time)

将时间 time 转换为秒。

mysql 系统日期函数(SQL函数)(20)

如上,我们将09:17:44 转换为 33464秒。


TIMEDIFF(time1, time2)

计算 time1 与 time2 时间差值。

mysql 系统日期函数(SQL函数)(21)

如上,返回'2019-09-17 09:17:44' 与 '2019-09-16 09:17:44' 的时间差为 24:00:00 。


PERIOD_DIFF(period1, period2)

返回两个时段之间的月份差值,period1, period2格式为YYMM或YYYYMM。

mysql 系统日期函数(SQL函数)(22)

如上,返回201909, 201904的月份差为5个月。


,