SQL - Date(日期函数)

SQL - Date(日期函数) 首页 / SQL入门教程 / SQL - Date(日期函数)

下表列出了可通过SQL使用的所有重要的与日期和时间相关的重要功能。 RDBMS还支持其他各种功能。给定的列表基于MySQL RDBMS。

Sr.No.Function & 描述
1 ADDDATE()

添加日期

2 ADDTIME()

增加时间

3 CONVERT_TZ()

从一个时区转换到另一个时区

4 CURDATE()

返回当前日期

5 CURTIME()

返回当前时间

6 DATE_ADD()

加两个日期

7 DATE_FORMAT()

按照指定的格式设置日期

8 DATE_SUB()

减去两个日期

9 DATE()

提取日期或日期时间表达式的日期部分

10 DATEDIFF()

减去两个日期

11 DAY()

DAYOFMONTH()的同义词

12 DAYNAME()

返回工作日的名称

13 DAYOFMONTH()

返回月份中的一天(1-31)

14 DAYOFWEEK()

返回参数的工作日索引

15 DAYOFYEAR()

返回一年中的一天(1-366)

16 EXTRACT

提取日期的一部分

17 FROM_DAYS()

将天数转换为日期

18 FROM_UNIXTIME()

将日期格式化为UNIX时间戳

19 HOUR()

提取小时

20 LAST_DAY

返回参数的月份的最后一天

21 MAKEDATE()

从一年中的年月日创建日期

22 MAKETIME

MAKETIME()

23 MICROSECOND()

从参数返回微秒

24 MINUTE()

返回参数的分钟

25 MONTH()

返回经过日期的月份

26 MONTHNAME()

返回月份名称

27 NOW()

返回当前日期和时间

28 PERIOD_ADD()

在一年的月份中添加一个期间

29 PERIOD_DIFF()

返回期间之间的月数

30 QUARTER()

从日期参数返回季度

31 SEC_TO_TIME()

将秒转换为" HH:MM:SS"格式

32 SECOND()

返回第二个(0-59)

33 STR_TO_DATE()

将字符串转换为日期

34 SUBDATE()

用三个参数调用时,DATE_SUB()的同义词

35 SUBTIME()

减去时间

36 SYSDATE()

返回函数执行的时间

37 TIME_FORMAT()

格式化为时间

38 TIME_TO_SEC()

返回转换为秒的参数

39 TIME()

提取传递的表达式的时间部分

40 TIMEDIFF()

减去时间

41 TIMESTAMP()

仅使用一个参数,此函数将返回日期或日期时间表达式。有两个参数,参数的总和

42 TIMESTAMPADD()

向日期时间表达式添加间隔

43 TIMESTAMPDIFF()

从日期时间表达式中减去一个间隔

44 TO_DAYS()

返回转换为天的日期参数

45 UNIX_TIMESTAMP()

返回UNIX时间戳

46 UTC_DATE()

返回当前UTC日期

47 UTC_TIME()

返回当前UTC时间

48 UTC_TIMESTAMP()

返回当前UTC日期和时间

49 WEEK()

返回星期数

50 WEEKDAY()

返回工作日索引

51 WEEKOFYEAR()

返回日期的日历周(1-53)

52 YEAR()

返回年份

53 YEARWEEK()

返回年份和周

ADDDATE, ADDDATE

当使用第二个参数的INTERVAL形式调用时,ADDDATE()是DATE_ADD()的同义词。相关函数SUBDATE()是DATE_SUB()的同义词。有关INTERVAL单位参数的信息,请参见DATE_ADD()的讨论。

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY)                  |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

当使用第二个参数的days形式调用时,MySQL将其视为要添加到expr的整数天数。

mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ADDTIME(expr1,expr2)

ADDTIME()将expr2添加到expr1并返回输出。 expr1是时间或日期时间表达式,而expr2是时间表达式。

mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
| 1998-01-02 01:01:01.000001                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONVERT_TZ(dt,from_tz,to_tz)

这会将datetime值dt从from_tz给定的时区转换为to_tz给定的时区,并返回输出值。如果参数无效,则此函数返回NULL。

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')           |
+---------------------------------------------------------+
| 2004-01-01 13:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')     |
+---------------------------------------------------------+
| 2004-01-01 22:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURDATE()

以“ YYYY-MM-DD”或YYYYMMDD格式返回当前日期作为值。

mysql> SELECT CURDATE();
+---------------------------------------------------------+
| CURDATE()                                               |
+---------------------------------------------------------+
| 1997-12-15                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURDATE() + 0;
+---------------------------------------------------------+
| CURDATE() + 0                                           |
+---------------------------------------------------------+
| 19971215                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURTIME()

以'HH:MM:SS'或HHMMSS格式返回当前时间作为值,具体取决于该函数是在字符串中还是在数字上下文中使用。该值以当前时区表示。

mysql> SELECT CURTIME();
+---------------------------------------------------------+
| CURTIME()                                               |
+---------------------------------------------------------+
| 23:50:26                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURTIME() + 0;
+---------------------------------------------------------+
| CURTIME() + 0                                           |
+---------------------------------------------------------+
| 235026                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE(expr)

提取日期或日期时间表达式expr的日期部分。

mysql> SELECT DATE('2003-12-31 01:02:03');
+---------------------------------------------------------+
| DATE('2003-12-31 01:02:03')                             |
+---------------------------------------------------------+
|  2003-12-31                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATEDIFF(expr1,expr2)

DATEDIFF()返回expr1。 expr2,以从一个日期到另一个日期的天数表示。 expr1和expr2都是日期或日期和时间表达式。在计算中仅使用值的日期部分。

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+---------------------------------------------------------+
| DATEDIFF('1997-12-31 23:59:59','1997-12-30')            |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_ADD,DATE_SUB

这些函数执行日期算术。 date 是指定开始日期的DATETIME或DATE值。

mysql> SELECT DATE_ADD('1997-12-31 23:59:59', 
   -> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59', INTERVAL...             |
+---------------------------------------------------------+
| 1998-01-01 00:01:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
| DATE_ADD('1999-01-01', INTERVAL 1 HOUR)                 |
+---------------------------------------------------------+
| 1999-01-01 01:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_FORMAT(date,format)

此命令根据格式字符串格式化日期值。

可以在格式字符串中使用以下说明符。格式说明符之前必须有'%'字符。

Sr.No.Specifier & 描述
1

%a

工作日的缩写名称(周日..周六)

2

%b

月份缩写名称(Jan..Dec)

3

%c

月份,数字(0..12)

4

%D

带英文后缀的月份中的一天(0、1、2、3 、.)

5

%d

每月的某天,数字(00..31)

6

%e

每月的某天,数字(0..31)

7

%f

微秒(000000..999999)

8

%H

小时(00..23)

9

%h

小时(01..12)

10

%I

小时(01..12)

11

%i

分钟,数字(00..59)

12

%j

一年中的哪一天(001..366)

13

%k

小时(0..23)

14

%l

小时(1..12)

15

%M

月名称(一月..十二月)

16

%m

月份,数字(00..12)

17

%p

上午或下午

18

%r

Time, 12-hour (hh:mm:ss followed by 上午或下午)

19

%S

秒(00..59)

20

%s

秒(00..59)

21

%T

时间24小时(hh:mm:ss)

22

%U

周(00..53),其中星期日是一周的第一天

23

%u

周(00..53),其中星期一是一周的第一天

24

%V

周(01..53),其中周日是一周的第一天;与%X一起使用

25

%v

周(01..53),其中星期一是一周的第一天;与%x一起使用

26

%W

工作日名称(星期日..星期六)

27

%w

星期几(0 =星期日..6 =星期六)

28

%X

星期的年份,其中星期日是一周的第一天,数字,四位数;与%V一起使用

29

%x

一周的年份,其中星期一是一周的第一天,数字,四位数;与%v一起使用

30

%Y

年,数字,四位数

31

%y

年,数字(两位数字)

32

%%

字面值。%。字符

33

%x

x,对于任何x。上面没有列出

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y')          |
+---------------------------------------------------------+
| Saturday October 1997                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
   -> '%H %k %I %r %T %S %w');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00.......                 |
+---------------------------------------------------------+
|  22 22 10 10:23:00 PM 22:23:00 00 6                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYNAME(date)

返回日期的工作日名称。

mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
| DAYNAME('1998-02-05')                                   |
+---------------------------------------------------------+
| Thursday                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFMONTH(date)

返回日期中月份的日期,范围为0到31。

mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
| DAYOFMONTH('1998-02-03')                                |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFWEEK(date)

返回日期的工作日索引(1 =星期日,2 =星期一,。,7 =星期六)。这些索引值对应于ODBC标准。

mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
|DAYOFWEEK('1998-02-03')                                  |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFYEAR(date)

返回日期中的日期,范围为1到366。

mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
| DAYOFYEAR('1998-02-03')                                 |
+---------------------------------------------------------+
| 34                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXTRACT(unit FROM date)

EXTRACT()函数使用与DATE_ADD()或DATE_SUB()相同类型的单位说明符,但是从日期中提取部分而不是执行日期算术。

mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
+---------------------------------------------------------+
| EXTRACT(YEAR FROM '1999-07-02')                         |
+---------------------------------------------------------+
| 1999                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
+---------------------------------------------------------+
| EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03')          |
+---------------------------------------------------------+
| 199907                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FROM_DAYS(N)

给定日期数字N,则返回DATE值。

mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
| FROM_DAYS(729669)                                       |
+---------------------------------------------------------+
| 1997-10-07                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

注意-在旧日期上谨慎使用FROM_DAYS()。它不适用于公历(1582)出现之前的值。

FROM_UNIXTIME(unix_timestamp,format)

-MM-DD HH:MM:SS或YYYYMMDDHHMMSS格式返回 unix_timestamp 参数的表示形式,具体取决于该函数是在字符串中还是在数字context中使用。该值以当前时区表示。 unix_timestamp参数是内部时间戳值,由 UNIX_TIMESTAMP()函数产生。

mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
| FROM_UNIXTIME(875996580)                                |
+---------------------------------------------------------+
| 1997-10-04 22:23:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HOUR(time)

返回时间的小时。对于一天中的时间值,返回值的范围是0到23。但是,TIME值的范围实际上要大得多,因此HOUR可以返回大于23的值。

链接:https://www.learnfk.comhttps://www.learnfk.com/sql/sql-date-functions.html

来源:LearnFk无涯教程网

mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
| HOUR('10:05:03')                                        |
+---------------------------------------------------------+
| 10                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LAST_DAY(date)

获取日期或日期时间值,并返回当月最后一天的相应值。如果参数无效,则返回NULL。

mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
| LAST_DAY('2003-02-05')                                  |
+---------------------------------------------------------+
| 2003-02-28                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKEDATE(year,dayofyear)

返回给定日期和年份值的日期。 dayofyear值必须大于0,否则输出将为NULL。

mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
+---------------------------------------------------------+
| MAKEDATE(2001,31), MAKEDATE(2001,32)                    |
+---------------------------------------------------------+
| '2001-01-31', '2001-02-01'                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKETIME(hour,minute,second)

返回根据小时,分钟和秒参数计算出的时间值。

mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
| MAKETIME(12,15,30)                                      |
+---------------------------------------------------------+
| '12:15:30'                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MICROSECOND(expr)

从时间或日期时间表达式(expr)返回微秒,范围为0到999999之间的一个数字。

mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
| MICROSECOND('12:00:00.123456')                          |
+---------------------------------------------------------+
| 123456                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MINUTE(time)

返回时间的分钟,范围为0到59。

mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
| MINUTE('98-02-03 10:05:03')                             |
+---------------------------------------------------------+
| 5                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MONTH(date)

返回日期的月份,范围为0到12。

mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
| MONTH('1998-02-03')                                     |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MONTHNAME(date)

返回日期的月份的全名。

mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
| MONTHNAME('1998-02-05')                                 |
+---------------------------------------------------------+
| February                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

NOW()

以“ YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS格式返回当前日期和时间作为值,具体取决于该函数是在字符串还是在数字上下文中使用。该值以当前时区表示。

mysql> SELECT NOW();
+---------------------------------------------------------+
| NOW()                                                   |
+---------------------------------------------------------+
| 1997-12-15 23:50:26                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_ADD(P,N)

向期间P添加N个月(格式为YYMM或YYYYMM)。返回格式为YYYYMM的值。请注意,期间参数P不是日期值。

mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
| PERIOD_ADD(9801,2)                                      |
+---------------------------------------------------------+
| 199803                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_DIFF(P1,P2)

返回周期P1和P2之间的月数。这些期间P1和P2的格式应为YYMM或YYYYMM。请注意,期间参数P1和P2不是日期值。

mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
| PERIOD_DIFF(9802,199703)                                |
+---------------------------------------------------------+
| 11                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

QUARTER(date)

返回日期的一年的四分之一,范围为1到4。

mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
| QUARTER('98-04-01')                                     |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SECOND(time)

返回秒的时间,范围为0到59。

mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
| SECOND('10:05:03')                                      |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SEC_TO_TIME(seconds)

返回秒参数(转换为小时,分钟和秒),形式为" HH:MM:SS"或HHMMSS格式的值,具体取决于该函数是在字符串context中还是在数字context中使用。

mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
| SEC_TO_TIME(2378)                                       |
+---------------------------------------------------------+
| 00:39:38                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STR_TO_DATE(str,format)

这是DATE_FORMAT()函数的反函数。它采用字符串str和格式字符串格式。如果格式字符串同时包含日期和时间部分,则STR_TO_DATE()函数将返回DATETIME值。否则,如果字符串仅包含日期或时间部分,它将返回DATE或TIME值。

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
+---------------------------------------------------------+
| STR_TO_DATE('04/31/2004', '%m/%d/%Y')                   |
+---------------------------------------------------------+
| 2004-04-31                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBDATE(date,INTERVAL expr unit)和SUBDATE(expr,days)

当使用第二个参数的INTERVAL形式调用时,SUBDATE()是DATE_SUB()的同义词。有关INTERVAL单位参数的信息,请参见DATE_ADD()的讨论。

mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_SUB('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1997-12-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| SUBDATE('1998-01-02', INTERVAL 31 DAY)                  |
+---------------------------------------------------------+
| 1997-12-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBTIME(expr1,expr2)

SUBTIME()函数返回expr1。 expr2以与expr1相同的格式表示为值。 expr1值是时间或日期时间表达式,而expr2值是时间表达式。

mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999',
   -> '1 1:1:1.000002');
+---------------------------------------------------------+
| SUBTIME('1997-12-31 23:59:59.999999'...                 |
+---------------------------------------------------------+
| 1997-12-30 22:58:58.999997                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SYSDATE()

以“ YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS格式返回当前日期和时间作为值,具体取决于该函数是在字符串中还是在数字上下文中使用。

mysql> SELECT SYSDATE();
+---------------------------------------------------------+
| SYSDATE()                                               |
+---------------------------------------------------------+
| 2006-04-12 13:47:44                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME(expr)

提取时间或日期时间表达式 expr 的时间部分,并将其作为字符串返回。

mysql> SELECT TIME('2003-12-31 01:02:03');
+---------------------------------------------------------+
| TIME('2003-12-31 01:02:03')                             |
+---------------------------------------------------------+
| 01:02:03                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMEDIFF(expr1,expr2)

TIMEDIFF()函数返回expr1。以时间值表示的expr2。这些expr1和expr2值是时间或日期和时间表达式,但两者必须是同一类型。

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
   -> '1997-12-30 01:01:01.000002');
+---------------------------------------------------------+
| TIMEDIFF('1997-12-31 23:59:59.000001'.....              |
+---------------------------------------------------------+
|  46:58:57.999999                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMP(expr),TIMESTAMP(expr1,expr2)

仅使用一个参数,此函数将date或datetime表达式expr作为datetime值返回。它使用两个参数将时间表达式expr2添加到日期或日期时间表达式 expr1 中,并将输出作为日期时间值返回。

mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
| TIMESTAMP('2003-12-31')                                 |
+---------------------------------------------------------+
| 2003-12-31 00:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPADD(unit,interval,datetime_expr)

此函数将整数表达式间隔添加到日期或日期时间表达式 datetime_expr 中。间隔的单位由unit参数指定,该参数应为以下值之一-

  • FRAC_SECOND
  • SECOND,MINUTE
  • HOUR,DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

可以使用所示的关键字之一或使用SQL_TSI_的前缀来指定单位值。

如,DAY和SQL_TSI_DAY都是合法的。

mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
+---------------------------------------------------------+
| TIMESTAMPADD(MINUTE,1,'2003-01-02')                     |
+---------------------------------------------------------+
| 2003-01-02 00:01:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

返回日期或日期时间表达式datetime_expr1和datetime_expr2之间的整数差。输出的单位由unit参数指定。该单位的合法值与TIMESTAMPADD()函数的说明中列出的值相同。

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+---------------------------------------------------------+
| TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01')          |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_FORMAT(date,format)

该函数的用法类似于DATE_FORMAT()函数,但是格式字符串只能包含小时,分钟和秒的格式说明符。

如果时间值包含大于23的小时部分,则% H 和% k 小时格式说明符会产生一个比通常范围0到23大的值。其他小时格式说明符会产生以12为模的小时值。

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
+---------------------------------------------------------+
| TIME_FORMAT('100:00:00', '%H %k %h %I %l')              |
+---------------------------------------------------------+
| 100 100 04 04 4                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_TO_SEC(time)

返回转换为秒的时间参数。

mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
| TIME_TO_SEC('22:23:00')                                 |
+---------------------------------------------------------+
| 80580                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TO_DAYS(date)

给定日期,返回天数(从0年开始的天数)。

mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
| TO_DAYS(950501)                                         |
+---------------------------------------------------------+
| 728779                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UNIX_TIMESTAMP(),UNIX_TIMESTAMP(date)

如果不带任何参数调用,则此函数以无符号整数形式返回Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数)。如果使用日期参数调用UNIX_TIMESTAMP(),则它将返回自1970年1月1日00:00:00 UTC以来的参数值(以秒为单位)。 date可以是DATE字符串,DATETIME字符串,TIMESTAMP或YYMMDD或YYYYMMDD格式的数字。

mysql> SELECT UNIX_TIMESTAMP();
+---------------------------------------------------------+
| UNIX_TIMESTAMP()                                        |
+---------------------------------------------------------+
| 882226357                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00')                   |
+---------------------------------------------------------+
| 875996580                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_DATE,UTC_DATE()

以“ YYYY-MM-DD”或YYYYMMDD格式返回当前UTC日期作为值

mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+---------------------------------------------------------+
| UTC_DATE(), UTC_DATE() + 0                              |
+---------------------------------------------------------+
| 2003-08-14, 20030814                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIME,UTC_TIME()

以'HH:MM:SS'或HHMMSS格式返回当前UTC时间作为值。

mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+---------------------------------------------------------+
| UTC_TIME(), UTC_TIME() + 0                              |
+---------------------------------------------------------+
| 18:07:53, 180753                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIMESTAMP,UTC_TIMESTAMP()

以'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回当前UTC日期和时间作为值

无涯教程网

mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
+---------------------------------------------------------+
| UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0                    |
+---------------------------------------------------------+
| 2003-08-14 18:08:04, 20030814180804                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEK(date[,mode])

此函数返回日期的星期数。 WEEK()的两个参数形式允许您指定星期是从星期日还是星期一开始,以及返回值应在0到53或从1到53的范围内。如果省略了mode参数,使用default_week_format系统变量的值

mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20')                                      |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKDAY(date)

返回日期的星期几索引(0 =星期一,1 =星期二,。6 =星期日)。

mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
+---------------------------------------------------------+
| WEEKDAY('1998-02-03 22:23:00')                          |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKOFYEAR(date)

以1到53之间的数字形式返回日期的日历周。WEEKOFYEAR()是一个兼容函数,等效于WEEK(date,3)。

mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20')                                |
+---------------------------------------------------------+
| 8                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YEAR(date)

返回日期的年份,范围在1000到9999之间,对于.zero则返回0。日期。

mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03')                                        |
+---------------------------------------------------------+
| 1998                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YEARWEEK(date),YEARWEEK(date,mode)

返回日期的年和周。模式参数的工作方式与WEEK()函数的模式参数完全相同。结果中的年份可能与该年份的第一周和最后一周的date参数中的年份不同。

mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01')                  |
+---------------------------------------------------------+
| 198653                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

注意-星期数与WEEK()函数对于可选参数0或1返回的(0)不同,因为WEEK()然后在给定年份中返回星期。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入剖析Kubernetes -〔张磊〕

玩转webpack -〔程柳锋〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

ZooKeeper实战与源码剖析 -〔么敬国〕

研发效率破局之道 -〔葛俊〕

代码之丑 -〔郑晔〕

Python自动化办公实战课 -〔尹会生〕

深入剖析Java新特性 -〔范学雷〕

Go进阶 · 分布式爬虫实战 -〔郑建勋〕

好记忆不如烂笔头。留下您的足迹吧 :)