绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
SQL 函数——MySQL常用日期函数详解
2019-09-19 16:39:29

在前面若干章节中,我们介绍了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个月。


软件测试开发技术栈 

分享好友

分享这个小栈给你的朋友们,一起进步吧。

MySQL干货资料
创建时间:2020-05-06 14:18:32
每天都有干货输出哦
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~