MySQL 函数参考手册(MySQL 日期函数)

目录

MySQL ADDDATE() 函数

MySQL ADDTIME() 函数

MySQL CURDATE() 函数

MySQL CURRENT_DATE() 函数

MySQL CURRENT_TIME() 函数

MySQL CURRENT_TIMESTAMP() 函数

MySQL CURTIME() 函数

MySQL DATE() 函数

MySQL DATEDIFF() 函数

MySQL DATE_ADD() 函数

MySQL DATE_FORMAT() 函数

MySQL DATE_SUB() 函数

MySQL DAY() 函数

MySQL DAYNAME() 函数

MySQL DAYOFMONTH() 函数

MySQL DAYOFWEEK() 函数

MySQL DAYOFYEAR() 函数

MySQL EXTRACT() 函数

MySQL FROM_DAYS() 函数

MySQL HOUR() 函数

MySQL LAST_DAY() 函数

MySQL LOCALTIME() 函数

MySQL LOCALTIMESTAMP() 函数

MySQL MAKEDATE() 函数

MySQL MAKETIME() 函数

MySQL MICROSECOND() 函数

MySQL MINUTE() 函数

MySQL MONTH() 函数

MySQL MONTHNAME() 函数

MySQL NOW() 函数

MySQL PERIOD_ADD() 函数

MySQL PERIOD_DIFF() 函数

MySQL QUARTER() 函数

MySQL SECOND() 函数

MySQL SEC_TO_TIME() 函数

MySQL STR_TO_DATE() 函数

MySQL SUBDATE() 函数

MySQL SUBTIME() 函数

MySQL SYSDATE() 函数

MySQL TIME() 函数

MySQL TIME_FORMAT() 函数

MySQL TIME_TO_SEC() 函数

MySQL TIMEDIFF() 函数

MySQL TIMESTAMP() 函数

MySQL TO_DAYS() 函数

MySQL WEEK() 函数

MySQL WEEKDAY() 函数

MySQL WEEKOFYEAR() 函数

MySQL YEAR() 函数

MySQL YEARWEEK() 函数


MySQL ADDDATE() 函数

【实例】

将日期加上 10 天并返回日期:

SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);

【定义和用法】

ADDDATE() 函数将时间/日期间隔添加到日期,然后返回日期。

【语法】

ADDDATE(date, INTERVAL value addunit)

或者:

ADDDATE(date, days)

【参数值】

参数 描述
date 必需。修改日期
days 必需。添加到date
value 必需。要添加的时间/日期间隔的值。 正负值都可以
addunit 必需。要添加的间隔类型。 可以是以下值之一:
  • 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

【技术细节】

适用于: From MySQL 4.0

【实例】

将日期加 15 分钟并返回日期:

SELECT ADDDATE("2017-06-15 09:34:21", INTERVAL 15 MINUTE);

【实例】

一个日期减去 3 小时并返回日期:

SELECT ADDDATE("2017-06-15 09:34:21", INTERVAL -3 HOUR);

【实例】

日期减去 2 个月并返回日期:

SELECT ADDDATE("2017-06-15", INTERVAL -2 MONTH);

MySQL ADDTIME() 函数

【实例】

将时间加 2 秒并返回日期时间:

SELECT ADDTIME("2017-06-15 09:34:21", "2");

【定义和用法】

ADDTIME() 函数将时间间隔添加到时间/日期时间,然后返回时间/日期时间。

【语法】

ADDTIME(datetime, addtime)

【参数值】

参数 描述
datetime 必需。要修改的时间/日期时间
addtime 必需。添加到 datetime 的时间间隔。 正负值都可以

【技术细节】

适用于: From MySQL 4.0

【实例】

将时间加上 5 秒和 3 微秒并返回日期时间:

SELECT ADDTIME("2017-06-15 09:34:21.000001", "5.000003");

【实例】

将时间加上 2 小时 10 分钟 5 秒和 3 微秒并返回日期时间:

SELECT ADDTIME("2017-06-15 09:34:21.000001", "2:10:5.000003");

【实例】

将时间加上 5 天 2 小时 10 分钟 5 秒和 3 微秒并返回日期时间:

SELECT ADDTIME("2017-06-15 09:34:21.000001", "5 2:10:5.000003");

【实例】

将时间加上 2 小时 10 分钟 5 秒和 3 微秒并返回时间:

SELECT ADDTIME("09:34:21.000001", "2:10:5.000003");

MySQL CURDATE() 函数

【实例】

返回当前日期:

SELECT CURDATE();

【定义和用法】

CURDATE() 函数返回当前日期。

注:日期以 "YYYY-MM-DD" (字符串)或 YYYYMMDD(数字)形式返回。此函数等于 CURRENT_DATE() 函数。

【语法】

CURDATE()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期+1:

SELECT CURDATE() + 1;

MySQL CURRENT_DATE() 函数

【实例】

返回当前日期:

SELECT CURRENT_DATE();

【定义和用法】

CURRENT_DATE() 函数返回当前日期。

注:日期以 "YYYY-MM-DD" (字符串)或 YYYYMMDD(数字)形式返回。这个函数等同于CURDATE()函数。

【语法】

CURRENT_DATE()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期+1:

SELECT CURRENT_DATE() + 1;

MySQL CURRENT_TIME() 函数

【实例】

返回当前时间:

SELECT CURRENT_TIME();

【定义和用法】

CURRENT_TIME() 函数返回当前时间。

注:时间以 "HH-MM-SS" (字符串)或 HHMMSS.uuuuuu(数字)形式返回。这个函数等同于CURTIME()函数。​

【语法】

CURRENT_TIME()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前时间+1:

SELECT CURRENT_TIME() + 1;

MySQL CURRENT_TIMESTAMP() 函数

【实例】

返回当前日期和时间:

SELECT CURRENT_TIMESTAMP();

【定义和用法】

CURRENT_TIMESTAMP() 函数返回当前日期和时间。

注:日期和时间以 "YYYY-MM-DD HH-MM-SS"(字符串)或 YYYYMMDDHHMMSS.uuuuuu(数字)形式返回。

【语法】

CURRENT_TIMESTAMP()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期和时间 + 1:

SELECT CURRENT_TIMESTAMP() + 1;

MySQL CURTIME() 函数

【实例】

返回当前时间:

SELECT CURTIME();

【定义和用法】

CURTIME() 函数返回当前时间。

注:时间返回为"HH-MM-SS"。 (字符串)或 HHMMSS.uuuuuu(数字)。此函数等于 CURRENT_TIME() 函数。

【语法】

CURTIME()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前时间+1:

SELECT CURTIME() + 1;

MySQL DATE() 函数

【实例】

提取日期部分:

SELECT DATE("2017-06-15");

【定义和用法】

DATE() 函数从日期时间表达式中提取日期部分。

【语法】

DATE(expression)

【参数值】

参数 描述
expression 必需。有效的日期/日期时间值。 如果表达式不是日期或日期时间,则返回 NULL

【技术细节】

适用于: From MySQL 4.0

【实例】

提取日期部分:

SELECT DATE("2017-06-15 09:34:21");

【实例】

提取日期部分(将返回 NULL):

SELECT DATE("The date is 2017-06-15");

【实例】

提取日期部分:

SELECT DATE(OrderDate) FROM Orders;

MySQL DATEDIFF() 函数

【实例】

返回两个日期值之间的天数:

SELECT DATEDIFF("2017-06-25", "2017-06-15");

【定义和用法】

DATEDIFF() 函数返回两个日期值之间的天数。

【语法】

DATEDIFF(date1, date2)

【参数值】

参数 描述
date1, date2 必需。计算两个日期之间的天数。 (日期 1 - 日期 2)

【技术细节】

适用于: From MySQL 4.0

【实例】

返回两个日期值之间的天数:

SELECT DATEDIFF("2017-06-25 09:34:21", "2017-06-15 15:25:35");

【实例】

返回两个日期值之间的天数:

SELECT DATEDIFF("2017-01-01", "2016-12-24");

MySQL DATE_ADD() 函数

【实例】

将日期加上 10 天并返回日期:

SELECT DATE_ADD("2017-06-15", INTERVAL 10 DAY);

【定义和用法】

DATE_ADD() 函数将时间/日期间隔添加到日期,然后返回日期。

【语法】

DATE_ADD(date, INTERVAL value addunit)

【参数值】

参数 描述
date 必需。修改日期
value 必需。要添加的时间/日期间隔的值。 正负值都可以
addunit 必需。要添加的间隔类型。 可以是以下值之一:
  • 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

【技术细节】

适用于: From MySQL 4.0

【实例】

将日期加 15 分钟并返回日期:

SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL 15 MINUTE);

【实例】

一个日期减去 3 小时并返回日期:

SELECT DATE_ADD("2017-06-15 09:34:21", INTERVAL -3 HOUR);

【实例】

日期减去 2 个月并返回日期:

SELECT DATE_ADD("2017-06-15", INTERVAL -2 MONTH);

MySQL DATE_FORMAT() 函数

【实例】

格式化日期:

SELECT DATE_FORMAT("2017-06-15", "%Y");

【定义和用法】

DATE_FORMAT() 函数按指定格式化日期。

【语法】

DATE_FORMAT(date, format)

【参数值】

参数 描述
date 必需。要格式化的日期
format 必须。要使用的格式。可以是以下值之一或组合:
格式 描述
%a 工作日的缩写名称(周日至周六)
%b 缩写月份名称(1 月至 12 月)
%c 数字月份名称(0 到 12)
%D 以数字形式表示的月份中的日期,后跟后缀 (1st, 2nd, 3rd, ...)
%d 以数值表示的月份中的日期(01 到 31)
%e 以数字形式表示的月份中的日期(0 到 31)
%f 微秒(000000 到 999999)
%H 小时(00 到 23)
%h 小时(00 到 12)
%I 小时(00 到 12)
%i 分钟(00 到 59)
%j 一年中的某一天(001 到 366)
%k 小时(0 到 23)
%l 小时(1 到 12)
%M 完整的月份名称(1 月至 12 月)
%m 数字形式的月份名称(00 到 12)
%p 上午或下午
%r 12 小时 AM 或 PM 格式的时间 (hh:mm:ss AM/PM)
%S 秒(00 到 59)
%s 秒(00 到 59)
%T 24 小时制时间 (hh:mm:ss)
%U 星期天是一周的第一天(00 到 53)
%u 星期一是一周的第一天的星期(00 到 53)
%V 星期天是一周的第一天(01 到 53)。与 %X 一起使用
%v 星期一是一周的第一天的星期(01 到 53)。与 %X 一起使用
%W 完整的工作日名称(周日至周六)
%w 星期天=0,星期六=6
%X 星期天是一周的第一天的星期。与 %V 一起使用
%x 星期一是一周的第一天的一周的年份。与 %V 一起使用
%Y 4 位数字形式的年份
%y 2 位数字形式的年份

【技术细节】

适用于: From MySQL 4.0

【实例】

格式化日期:

SELECT DATE_FORMAT("2017-06-15", "%M %d %Y");

【实例】

格式化日期:

SELECT DATE_FORMAT("2017-06-15", "%W %M %e %Y");

【实例】

格式化日期:

SELECT DATE_FORMAT(BirthDate, "%W %M %e %Y") FROM Employees;

MySQL DATE_SUB() 函数

【实例】

从一个日期减去 10 天并返回日期:

SELECT DATE_SUB("2017-06-15", INTERVAL 10 DAY);

【定义和用法】

DATE_SUB() 函数从日期中减去时间/日期间隔,然后返回日期。

【语法】

DATE_SUB(date, INTERVAL value interval)

【参数值】

参数 描述
date 必需。 修改日期
value 必需。要减去的时间/日期间隔的值。 正负值都可以
interval 必需。要减去的区间类型。 可以是以下值之一:
  • 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

【技术细节】

适用于: From MySQL 4.0

【实例】

从日期减去 15 分钟并返回日期:

SELECT DATE_SUB("2017-06-15 09:34:21", INTERVAL 15 MINUTE);

【实例】

从日期中减去 3 小时并返回日期:

SELECT DATE_SUB("2017-06-15 09:34:21", INTERVAL 3 HOUR);

【实例】

将日期加 2 个月并返回日期:

SELECT DATE_SUB("2017-06-15", INTERVAL -2 MONTH);

MySQL DAY() 函数

【实例】

返回日期的月份日期:

SELECT DAY("2017-06-15");

【定义和用法】

​DAY() 函数返回给定日期(从 1 到 31 的数字)的月份中的哪一天。

注:此函数等于 DAYOFMONTH() 函数。

【语法】

DAY(date)

【参数值】

参数 描述
date 必需。从中提取日期的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的月份日期:

SELECT DAY("2017-06-15 09:34:21");

【实例】

返回当前系统日期的月份日期:

SELECT DAY(CURDATE());

MySQL DAYNAME() 函数

【实例】

返回日期的工作日名称:

SELECT DAYNAME("2017-06-15");

【定义和用法】

DAYNAME() 函数返回给定日期的工作日名称。

【语法】

DAYNAME(date)

【参数值】

参数 描述
date 必需。从中提取工作日名称的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的工作日名称:

SELECT DAYNAME("2017-06-15 09:34:21");

【实例】

返回当前系统日期的工作日名称:

SELECT DAYNAME(CURDATE());

MySQL DAYOFMONTH() 函数

【实例】

返回日期的月份日期:

SELECT DAYOFMONTH("2017-06-15");

【定义和用法】

DAYOFMONTH() 函数返回给定日期的月份日期(1 到 31 之间的数字)。

注:此函数等于 DAY() 函数。

【语法】

DAYOFMONTH(date)

【参数值】

参数 描述
date 必需。从中提取日期的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的月份日期:

SELECT DAYOFMONTH("2017-06-15 09:34:21");

【实例】

返回当前系统日期的月份日期:

SELECT DAYOFMONTH(CURDATE());

MySQL DAYOFWEEK() 函数

【实例】

返回某个日期的工作日索引:

SELECT DAYOFWEEK("2017-06-15");

【定义和用法】

DAYOFWEEK() 函数返回给定日期的工作日索引(从 1 到 7 的数字)。

注: 1=星期日,2=星期一,3=星期二,4=星期三,5=星期四,6=星期五,7=星期六。

【语法】

DAYOFWEEK(date)

【参数值】

参数 描述
date 必需。返回工作日索引的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

返回某个日期的工作日索引:

SELECT DAYOFWEEK("2017-06-15 09:34:21");

【实例】

返回当前系统日期的工作日索引:

SELECT DAYOFWEEK(CURDATE());

MySQL DAYOFYEAR() 函数

【实例】

返回日期的年份:

SELECT DAYOFYEAR("2017-06-15");

【定义和用法】

DAYOFYEAR() 函数返回给定日期的一年中的哪一天(从 1 到 366 的数字)。

【语法】

DAYOFYEAR(date)

【参数值】

参数 描述
date 必需。返回一年中日期的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的年份:

SELECT DAYOFYEAR("2017-01-01");

【实例】

返回当前系统日期的年份:

SELECT DAYOFYEAR(CURDATE());

MySQL EXTRACT() 函数

【实例】

从日期中提取月份:

SELECT EXTRACT(MONTH FROM "2017-06-15");

【定义和用法】

EXTRACT() 函数从给定日期提取部分。

【语法】

EXTRACT(part FROM date)

【参数值】

参数 描述
part 必需。要提取的部分。 可以是以下之一:
  • 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
date 必需。提取部分的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

从日期中提取星期:

SELECT EXTRACT(WEEK FROM "2017-06-15");

【实例】

从日期时间中提取分钟:

SELECT EXTRACT(MINUTE FROM "2017-06-15 09:34:21");

【实例】

从日期时间中提取年份和月份:

SELECT EXTRACT(YEAR_MONTH FROM "2017-06-15 09:34:21");

MySQL FROM_DAYS() 函数

【实例】

从当天的数字表示中返回日期:

SELECT FROM_DAYS(685467);

【定义和用法】

FROM_DAYS() 函数从数字日期值返回日期。

FROM_DAYS() 函数只能用于公历中的日期。

注:此函数与 TO_DAYS() 函数相反。

【语法】

FROM_DAYS(number)

【参数值】

参数 描述
number 必需。要转换为日期的数字日期

【技术细节】

适用于: From MySQL 4.0

【实例】

从当天的数字表示中返回日期:

SELECT FROM_DAYS(780500);

MySQL HOUR() 函数

【实例】

返回日期时间的小时部分:

SELECT HOUR("2017-06-20 09:34:00");

【定义和用法】

HOUR() 函数返回给定日期的小时部分(从 0 到 838)。

【语法】

HOUR(datetime)

【参数值】

参数 描述
datetime 必需。从中提取小时的日期时间值

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期时间的小时部分:

SELECT HOUR("838:59:59");

MySQL LAST_DAY() 函数

【实例】

提取给定日期当月的最后一天:

SELECT LAST_DAY("2017-06-20");

【定义和用法】

LAST_DAY() 函数提取给定日期该月的最后一天。

【语法】

LAST_DAY(date)

【参数值】

参数 描述
date 必需。从中提取该月最后一天的日期

【技术细节】

适用于: From MySQL 4.0

【实例】

提取给定日期当月的最后一天:

SELECT LAST_DAY("2017-02-10 09:34:00");

MySQL LOCALTIME() 函数

【实例】

返回当前日期和时间:

SELECT LOCALTIME();

【定义和用法】

LOCALTIME() 函数返回当前日期和时间。

注:日期和时间以 "YYYY-MM-DD HH-MM-SS" (字符串)或 YYYYMMDDHHMMSS.uuuuuu(数字)形式返回。

【语法】

LOCALTIME()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期和时间+1:

SELECT LOCALTIME() + 1;

MySQL LOCALTIMESTAMP() 函数

【实例】

返回当前日期和时间:

SELECT LOCALTIMESTAMP();

【定义和用法】

LOCALTIMESTAMP() 函数返回当前日期和时间。

注:日期和时间以 "YYYY-MM-DD HH-MM-SS"(字符串)或 YYYYMMDDHHMMSS.uuuuuu(数字)形式返回。

【语法】

LOCALTIMESTAMP()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期和时间+1:

SELECT LOCALTIMESTAMP() + 1;

MySQL MAKEDATE() 函数

【实例】

根据年份和天数值创建并返回日期:

SELECT MAKEDATE(2017, 3);

【定义和用法】

MAKEDATE() 函数根据年份和天数值创建并返回日期。

【语法】

MAKEDATE(year, day)

【参数值】

参数 描述
year 必需。一年(4 位)
day 必需。一个表示一年中日期的数字

【技术细节】

适用于: From MySQL 4.0

【实例】

根据年份和天数值创建并返回日期:

SELECT MAKEDATE(2017, 175);

【实例】

根据年份和天数值创建并返回日期:

SELECT MAKEDATE(2017, 100);

【实例】

根据年份和天数值创建并返回日期:

SELECT MAKEDATE(2017, 366);

MySQL MAKETIME() 函数

【实例】

根据小时、分钟和秒值创建并返回时间值:

SELECT MAKETIME(11, 35, 4);

【定义和用法】

MAKETIME() 函数根据小时、分钟和秒值创建并返回时间。

【语法】

MAKETIME(hour, minute, second)

【参数值】

参数 描述
hour 必需。小时值
minute 必需。分钟值
second 必需。秒值

【技术细节】

适用于: From MySQL 4.0

【实例】

根据小时、分钟和秒值创建并返回时间值:

SELECT MAKETIME(16, 1, 0);

【实例】

根据小时、分钟和秒值创建并返回时间值:

SELECT MAKETIME(21, 59, 59);

【实例】

根据小时、分钟和秒值创建并返回时间值:

SELECT MAKETIME(838, 59, 59);

MySQL MICROSECOND() 函数

【实例】

返回日期时间的微秒部分:

SELECT MICROSECOND("2017-06-20 09:34:00.000023");

【定义和用法】

MICROSECOND() 函数返回时间/日期时间的微秒部分(从 0 到 999999)。

【语法】

MICROSECOND(datetime)

【参数值】

参数 描述
datetime 必需。从中提取微秒的时间或日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回时间值的微秒部分:

SELECT MICROSECOND("23:59:59.000045");

MySQL MINUTE() 函数

【实例】

返回日期时间值的分钟部分:

SELECT MINUTE("2017-06-20 09:34:00");

【定义和用法】

MINUTE() 函数返回时间/日期时间的分钟部分(从 0 到 59)。

【语法】

MINUTE(datetime)

【参数值】

参数 描述
datetime 必需。时间或日期时间从中提取分钟

【技术细节】

适用于: From MySQL 4.0

【实例】

返回时间值的分钟部分:

SELECT MINUTE("23:59:59");

MySQL MONTH() 函数

【实例】

返回日期的月份部分:

SELECT MONTH("2017-06-15");

【定义和用法】

MONTH() 函数返回给定日期的月份部分(从 1 到 12 的数字)。

【语法】

MONTH(date)

【参数值】

参数 描述
date 必需。从中提取月份的日期或日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的月份部分:

SELECT MONTH("2017-06-15 09:34:21");

【实例】

返回当前系统日期的月份部分:

SELECT MONTH(CURDATE());

MySQL MONTHNAME() 函数

【实例】

返回日期的月份名称:

SELECT MONTHNAME("2017-06-15");

【定义和用法】

MONTHNAME() 函数返回给定日期的月份名称。

【语法】

MONTHNAME(date)

【参数值】

参数 描述
date 必需。从中提取月份名称的日期或日期时间值

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的月份名称:

SELECT MONTHNAME("2017-06-15 09:34:21");

【实例】

返回当前系统日期的月份名称:

SELECT MONTHNAME(CURDATE());

MySQL NOW() 函数

【实例】

返回当前日期和时间:

SELECT NOW();

【定义和用法】

NOW() 函数返回当前日期和时间。

注:日期和时间以 "YYYY-MM-DD HH-MM-SS"(字符串)或 YYYYMMDDHHMMSS.uuuuuu(数字)形式返回。

【语法】

NOW()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期和时间+1:

SELECT NOW() + 1;

MySQL PERIOD_ADD() 函数

【实例】

在句点中添加指定的月份:

SELECT PERIOD_ADD(201703, 5);

【定义和用法】

PERIOD_ADD() 函数将指定的月数添加到期间。

PERIOD_ADD() 函数将返回格式为 YYYYMM 的结果。

【语法】

PERIOD_ADD(period, number)

【参数值】

参数 描述
period 必需。一段时间。 格式:YYMM 或 YYYYMM
number 必需。添加到period的月数。 正负值都可以

【技术细节】

适用于: From MySQL 4.0

【实例】

在句点中添加指定的月份:

SELECT PERIOD_ADD(201703, 15);

【实例】

在句点中添加指定的月份:

SELECT PERIOD_ADD(201703, -2);

MySQL PERIOD_DIFF() 函数

【实例】

返回两个句点之间的差:

SELECT PERIOD_DIFF(201710, 201703);

【定义和用法】

PERIOD_DIFF() 函数返回两个周期之间的差值。 结果将在几个月内。

注: period1 和 period2 应该采用相同的格式。

【语法】

PERIOD_DIFF(period1, period2)

【参数值】

参数 描述
period1 必需。一个时间。 格式:YYMM 或 YYYYMM
period2 必需。另一个时间。 格式:YYMM 或 YYYYMM

【技术细节】

适用于: From MySQL 4.0

【实例】

返回两个句点之间的差:

SELECT PERIOD_DIFF(201703, 201803);

【实例】

返回两个句点之间的差:

SELECT PERIOD_DIFF(1703, 1612);

MySQL QUARTER() 函数

【实例】

返回日期所在的季度:

SELECT QUARTER("2017-06-15");

【定义和用法】

QUARTER() 函数返回给定日期值(从 1 到 4 的数字)的一年中的季度。

  • 1-3 月返回 1
  • 4 月至 6 月返回 2
  • 7-9 月返回 3
  • 10 月至 12 月返回 4

【语法】

QUARTER(date)

【参数值】

参数 描述
date 必需。从中提取季度的日期或日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期所在的季度:

SELECT QUARTER("2017-01-01 09:34:21");

【实例】

返回日期所在的季度:

SELECT QUARTER(CURDATE());

MySQL SECOND() 函数

【实例】

返回日期时间值的秒部分:

SELECT SECOND("2017-06-20 09:34:00.000023");

【定义和用法】

SECOND() 函数返回时间/日期时间的秒部分(从 0 到 59)。

【语法】

SECOND(datetime)

【参数值】

参数 描述
datetime 必需。从中提取第二个的时间或日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回时间值的秒部分:

SELECT SECOND("23:59:59");

MySQL SEC_TO_TIME() 函数

【实例】

根据指定的秒值返回一个时间值:

SELECT SEC_TO_TIME(1);

【定义和用法】

SEC_TO_TIME() 函数根据指定的秒数返回一个时间值(格式为 HH:MM:SS)。

【语法】

SEC_TO_TIME(seconds)

【参数值】

参数 描述
seconds 必需。秒数。 正值或负值都可以

【技术细节】

适用于: From MySQL 4.0

【实例】

根据指定的秒值返回一个时间值:

SELECT SEC_TO_TIME(-6897);

MySQL STR_TO_DATE() 函数

【实例】

根据字符串和格式返回日期:

SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");

【定义和用法】

STR_TO_DATE() 函数根据字符串和格式返回日期。

【语法】

STR_TO_DATE(string, format)

【参数值】

参数 描述
string 必需。要格式化为日期的字符串
format 必需。要使用的格式。 可以是以下值之一或组合:
格式 描述
%a 工作日的缩写名称(周日至周六)
%b 缩写月份名称(1 月至 12 月)
%c 数字月份名称(0 到 12)
%D 以数字形式表示的月份中的日期,后跟后缀 (1st, 2nd, 3rd, ...)
%d 以数值表示的月份中的日期(01 到 31)
%e 以数字形式表示的月份中的日期(0 到 31)
%f 微秒(000000 到 999999)
%H 小时(00 到 23)
%h 小时(00 到 12)
%I 小时(00 到 12)
%i 分钟(00 到 59)
%j 一年中的某一天(001 到 366)
%k 小时(0 到 23)
%l 小时(1 到 12)
%M 完整的月份名称(1 月至 12 月)
%m 数字形式的月份名称(01 到 12)
%p 上午或下午
%r 12 小时 AM 或 PM 格式的时间 (hh:mm:ss AM/PM)
%S 秒(00 到 59)
%s 秒(00 到 59)
%T 24 小时制时间 (hh:mm:ss)
%U 星期天是一周的第一天(00 到 53)
%u 星期一是一周的第一天的星期(00 到 53)
%V 星期天是一周的第一天(01 到 53)。与 %X 一起使用
%v 星期一是一周的第一天的星期(01 到 53)。与 %X 一起使用
%W 完整的工作日名称(周日至周六)
%w 星期天=0,星期六=6
%X 星期天是一周的第一天的星期。与 %V 一起使用
%x 星期一是一周的第一天的一周的年份。与 %V 一起使用
%Y 4 位数字形式的年份
%y 2 位数字形式的年份

【技术细节】

适用于: From MySQL 4.0

【实例】

根据字符串和格式返回日期:

SELECT STR_TO_DATE("August,5,2017", "%M %e %Y");

【实例】

根据字符串和格式返回日期:

SELECT STR_TO_DATE("Monday, August 14, 2017", "%W %M %e %Y");

【实例】

根据字符串和格式返回日期:

SELECT STR_TO_DATE("2017,8,14 10,40,10", "%Y,%m,%d %h,%i,%s");

MySQL SUBDATE() 函数

【实例】

从一个日期减去 10 天并返回日期:

SELECT SUBDATE("2017-06-15", INTERVAL 10 DAY);

【定义和用法】

SUBDATE() 函数从日期中减去时间/日期间隔,然后返回日期。

【语法】

SUBDATE(date, INTERVAL value unit)

或者:

SUBDATE(date, days)

【参数值】

参数 描述
date 必需。原日期
days 必须。从date中减去的天数
value 必须。要减去的时间/日期间隔的值。 正负值都可以
unit 必须。区间的类型。 可以是以下值之一:
  • 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

【技术细节】

适用于: From MySQL 4.0

【实例】

从日期减去 15 分钟并返回日期:

SELECT SUBDATE("2017-06-15 09:34:21", INTERVAL 15 MINUTE);

【实例】

从日期中减去 3 小时并返回日期:

SELECT SUBDATE("2017-06-15 09:34:21", INTERVAL 3 HOUR);

【实例】

将日期加 2 个月并返回日期:

SELECT SUBDATE("2017-06-15", INTERVAL -2 MONTH);

MySQL SUBTIME() 函数

【实例】

减去 5.000001 秒并返回日期时间:

SELECT SUBTIME("2017-06-15 10:24:21.000004", "5.000001");

【定义和用法】

SUBTIME() 函数从时间/日期时间表达式中减去时间,然后返回新的时间/日期时间。

【语法】

SUBTIME(datetime, time_interval)

【参数值】

参数 描述
datetime 必需。要修改的时间或日期时间
time_interval 必需。从 datetime 中减去的时间间隔。 正负值都可以

【技术细节】

适用于: From MySQL 4.0

【实例】

减去 3 小时 2 分钟 5.000001 秒并返回日期时间:

SELECT SUBTIME("2017-06-15 10:24:21.000004", "3:2:5.000001");

【实例】

减去5秒,返回时间:

SELECT SUBTIME("10:24:21", "5");

【实例】

SELECT SUBTIME("10:24:21", "300");

【实例】

加上 3 小时 2 分 5 秒,并返回时间:

SELECT SUBTIME("10:24:21", "-3:2:5");

MySQL SYSDATE() 函数

【实例】

返回当前日期和时间:

SELECT SYSDATE();

【定义和用法】

SYSDATE() 函数返回当前日期和时间。

注:日期和时间以 "YYYY-MM-DD HH:MM:SS"(字符串)或 YYYYMMDDHHMMSS(数字)形式返回。

【语法】

SYSDATE()

【技术细节】

适用于: From MySQL 4.0

【实例】

返回当前日期和时间+1:

SELECT SYSDATE() + 1;

MySQL TIME() 函数

【实例】

从时间表达式中提取时间部分:

SELECT TIME("19:30:10");

【定义和用法】

TIME() 函数从给定时间/日期时间中提取时间部分。

注: 此函数返回"00:00:00"。 如果 expression 不是日期时间/时间,如果 expression 为 NULL,则为 NULL。

【语法】

TIME(expression)

【参数值】

参数 描述
expression 必需。从中提取时间的时间/日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

从日期时间表达式中提取时间部分:

SELECT TIME("2017-08-15 19:30:10");

【实例】

从日期时间表达式中提取时间部分:

SELECT TIME("2017-08-15 19:30:10.000001");

【实例】

从NULL中提取时间部分:

SELECT TIME(NULL);

MySQL TIME_FORMAT() 函数

【实例】

格式化时间:

SELECT TIME_FORMAT("19:30:10", "%H %i %s");

【定义和用法】

TIME_FORMAT() 函数按指定格式格式化时间。

【语法】

TIME_FORMAT(time, format)

【参数值】

参数 描述
time 必需。格式化时间
format 必需。要使用的格式。 可以是以下之一或组合:
Format 描述
%f 微秒(000000 到 999999)
%H 小时(00 到 23)
%h 小时(00 到 12)
%I 小时(00 到 12)
%i 分钟(00 到 59)
%p 上午或下午
%r 12 小时 AM 或 PM 格式的时间 (hh:mm:ss AM/PM)
%S 秒(00 到 59)
%s 秒(00 到 59)
%T 24 小时制时间 (hh:mm:ss)

【技术细节】

适用于: From MySQL 4.0

【实例】

格式化时间:

SELECT TIME_FORMAT("19:30:10", "%h %i %s %p");

【实例】

格式化时间:

SELECT TIME_FORMAT("19:30:10", "%r");

【实例】

格式化时间:

SELECT TIME_FORMAT("19:30:10", "%T");

MySQL TIME_TO_SEC() 函数

【实例】

将时间值转换为秒:

SELECT TIME_TO_SEC("19:30:10");

【定义和用法】

TIME_TO_SEC() 函数将时间值转换为秒。

【语法】

TIME_TO_SEC(time)

【参数值】

参数 描述
time 必需。时间值

【技术细节】

适用于: From MySQL 4.0

【实例】

将时间值转换为秒:

SELECT TIME_TO_SEC("00:00:05");

【实例】

将时间值转换为秒:

SELECT TIME_TO_SEC("03:30:00.999999");

【实例】

将时间值转换为秒:

SELECT TIME_TO_SEC("-03:30:00");

MySQL TIMEDIFF() 函数

【实例】

返回两个时间表达式的差:

SELECT TIMEDIFF("13:10:11", "13:10:10");

【定义和用法】

TIMEDIFF() 函数返回两个时间/日期时间表达式之间的差异。

注: time1time2格式应该一样,计算是time1 - < em>time2。

【语法】

TIMEDIFF(time1, time2)

【参数值】

参数 描述
time1 必需。一个时间值
time2 必需。另一个时间值

【技术细节】

适用于: From MySQL 4.0

【实例】

返回两个日期时间表达式之间的差:

SELECT TIMEDIFF("2017-06-25 13:10:11", "2017-06-15 13:10:10");

MySQL TIMESTAMP() 函数

【实例】

根据参数返回一个日期时间值:

SELECT TIMESTAMP("2017-07-23",  "13:10:11");

【定义和用法】

TIMESTAMP() 函数根据日期或日期时间值返回一个日期时间值。

注:如果此函数指定了两个参数,它首先将第二个参数添加到第一个参数,然后返回一个日期时间值。

【语法】

TIMESTAMP(expression, time)

【参数值】

参数 描述
expression 必需。日期或日期时间值
time 可选。添加到表达式

【技术细节】

适用于: From MySQL 4.0

【实例】

根据参数返回一个日期时间值:

SELECT TIMESTAMP("2017-07-23");

MySQL TO_DAYS() 函数

【实例】

返回日期和年份 0 之间的天数:

SELECT TO_DAYS("2017-06-20");

【定义和用法】

TO_DAYS() 函数返回日期和年份 0(日期 "0000-00-00")之间的天数。

TO_DAYS() 函数只能用于公历中的日期。

注:此函数与 FROM_DAYS() 函数相反。

【语法】

TO_DAYS(date)

【参数值】

参数 描述
date 必需。给定日期

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期和年份 0 之间的天数:

SELECT TO_DAYS("2017-06-20 09:34:00");

MySQL WEEK() 函数

【实例】

返回日期的周数:

SELECT WEEK("2017-06-15");

【定义和用法】

WEEK() 函数返回给定日期的周数(从 0 到 53 的数字)。

【语法】

WEEK(date, firstdayofweek)

【参数值】

参数 描述
date 必需。  提取周数表单的日期或日期时间
firstdayofweek

可选。 指定一周从哪一天开始。 可以是以下之一:

  • 0 - 一周的第一天是星期日
  • 1 - 一周的第一天是星期一,一年中的第一周超过 3 天
  • 2 - 一周的第一天是星期日
  • 3 - 一周的第一天是星期一,一年中的第一周超过 3 天
  • 4 - 一周的第一天是星期日,一年中的第一周超过 3 天
  • 5 - 一周的第一天是星期一
  • 6 - 一周的第一天是星期日,一年中的第一周超过 3 天
  • 7 - 一周的第一天是星期一

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的周数:

SELECT WEEK("2017-10-25");

【实例】

返回当前系统日期的周数:

SELECT WEEK(CURDATE());

MySQL WEEKDAY() 函数

【实例】

返回日期的工作日编号:

SELECT WEEKDAY("2017-06-15");

【定义和用法】

WEEKDAY() 函数返回给定日期的工作日编号。

注: 0 = 星期一,1 = 星期二,2 = 星期三,3 = 星期四,4 = 星期五,5 = 星期六,6 = 星期日。

【语法】

WEEKDAY(date)

【参数值】

参数 描述
date 必需。  从中提取工作日编号的日期或日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的工作日编号:

SELECT WEEKDAY("2017-01-01");

【实例】

返回当前系统日期的工作日编号:

SELECT WEEKDAY(CURDATE());

MySQL WEEKOFYEAR() 函数

【实例】

返回日期的周数:

SELECT WEEKOFYEAR("2017-06-15");

【定义和用法】

WEEKOFYEAR() 函数返回给定日期的周数(从 1 到 53 的数字)。

注:此函数假定一周的第一天是星期一,并且一年中的第一周有超过 3 天。同时查看 WEEK() 函数。

【语法】

WEEKOFYEAR(date)

【参数值】

参数 描述
date 必需。  从中提取周数的日期或日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的周数:

SELECT WEEKOFYEAR("2017-01-01");

【实例】

返回当前系统日期的周数:

SELECT WEEKOFYEAR(CURDATE());

MySQL YEAR() 函数

【实例】

返回日期的年份部分:

SELECT YEAR("2017-06-15");

【定义和用法】

YEAR() 函数返回给定日期的年份部分(从 1000 到 9999 的数字)。

【语法】

YEAR(date)

【参数值】

参数 描述
date 必需。  从中提取年份的日期/日期时间

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的年份部分:

SELECT YEAR("2017-06-15 09:34:21");

【实例】

返回当前系统日期的年份部分:

SELECT YEAR(CURDATE());

MySQL YEARWEEK() 函数

【实例】

返回日期的年份和周数:

SELECT YEARWEEK("2017-06-15");

【定义和用法】

YEARWEEK() 函数返回给定日期的年和周数(从 0 到 53 的数字)。

【语法】

YEARWEEK(date, firstdayofweek)

【参数值】

参数 描述
date 必需。要从中提取年份和周数的日期或日期时间值
firstdayofweek

可选。 指定一周从哪一天开始。 可以是以下之一:

  • 0 - 一周的第一天是星期日
  • 1 - 一周的第一天是星期一,第一周超过 3 天
  • 2 - 一周的第一天是星期日
  • 3 - 一周的第一天是星期一,第一周超过 3 天
  • 4 - 一周的第一天是星期日,并且第一周超过 3 天
  • 5 - 一周的第一天是星期一
  • 6 - 一周的第一天是星期日,第一周超过 3 天
  • 7 - 一周的第一天是星期一

【技术细节】

适用于: From MySQL 4.0

【实例】

返回日期的年份和周数:

SELECT YEARWEEK("2017-10-25");

【实例】

返回当前系统日期的年份和周数:

SELECT YEARWEEK(CURDATE());

你可能感兴趣的:(SQL系列教程,SQL,教程,资料,笔记)