数据人成长交流的一站式服务平台

网站首页 > 数据编程 正文

SQL 函数——MySQL常用日期函数详解

nandi88 2024-08-28 19:04:21 数据编程 13 ℃

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

  • MySQL 字符串函数
  • MySQL 数字函数
  • MySQL 日期函数
  • MySQL 高级函数

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


CURRENT_DATE()

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


CURRENT_TIME()

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


CURRENT_TIMESTAMP()

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


DATEDIFF(date1,date2)

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

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


DATE_ADD(date,INTERVAL expr type)

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

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

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


DATE_SUB(date, INTERVAL expr type)

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

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


DATE_FORMAT(date, format)

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

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


DAYNAME(date)

返回日期 date 是星期几。

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


DAYOFWEEK(date)

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

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


DAYOFMONTH(date)

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

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


DAYOFYEAR(date)

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

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


WEEKOFYEAR(date)

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

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


EXTRACT(type FROM date)

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

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

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


LAST_DAY(date)

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

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


MAKEDATE(year, day)

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

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


QUARTER(date)

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

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


SEC_TO_TIME(seconds)

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

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


TIME_TO_SEC(time)

将时间 time 转换为秒。

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


TIMEDIFF(time1, time2)

计算 time1 与 time2 时间差值。

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


PERIOD_DIFF(period1, period2)

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

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


最近发表
标签列表