下表列出了可通过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"格式 链接:https://www.learnfk.comhttps://www.learnfk.com/sql/sql-date-functions.html 来源:LearnFk无涯教程网 |
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() 返回年份和周 |
当使用第二个参数的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()将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)
这会将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)
以“ 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)
以'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)
提取日期或日期时间表达式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,以从一个日期到另一个日期的天数表示。 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 是指定开始日期的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)
此命令根据格式字符串格式化日期值。
可以在格式字符串中使用以下说明符。格式说明符之前必须有'%'字符。
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)
返回日期的工作日名称。
mysql> SELECT DAYNAME('1998-02-05'); +---------------------------------------------------------+ | DAYNAME('1998-02-05') | +---------------------------------------------------------+ | Thursday | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回日期中月份的日期,范围为0到31。
mysql> SELECT DAYOFMONTH('1998-02-03'); +---------------------------------------------------------+ | DAYOFMONTH('1998-02-03') | +---------------------------------------------------------+ | 3 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回日期的工作日索引(1 =星期日,2 =星期一,。,7 =星期六)。这些索引值对应于ODBC标准。
mysql> SELECT DAYOFWEEK('1998-02-03'); +---------------------------------------------------------+ |DAYOFWEEK('1998-02-03') | +---------------------------------------------------------+ | 3 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回日期中的日期,范围为1到366。
mysql> SELECT DAYOFYEAR('1998-02-03'); +---------------------------------------------------------+ | DAYOFYEAR('1998-02-03') | +---------------------------------------------------------+ | 34 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
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)
给定日期数字N,则返回DATE值。
mysql> SELECT FROM_DAYS(729669); +---------------------------------------------------------+ | FROM_DAYS(729669) | +---------------------------------------------------------+ | 1997-10-07 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
注意-在旧日期上谨慎使用FROM_DAYS()。它不适用于公历(1582)出现之前的值。
以
mysql> SELECT FROM_UNIXTIME(875996580); +---------------------------------------------------------+ | FROM_UNIXTIME(875996580) | +---------------------------------------------------------+ | 1997-10-04 22:23:00 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回时间的小时。对于一天中的时间值,返回值的范围是0到23。但是,TIME值的范围实际上要大得多,因此HOUR可以返回大于23的值。
mysql> SELECT HOUR('10:05:03'); +---------------------------------------------------------+ | HOUR('10:05:03') | +---------------------------------------------------------+ | 10 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
获取日期或日期时间值,并返回当月最后一天的相应值。如果参数无效,则返回NULL。
mysql> SELECT LAST_DAY('2003-02-05'); +---------------------------------------------------------+ | LAST_DAY('2003-02-05') | +---------------------------------------------------------+ | 2003-02-28 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回给定日期和年份值的日期。 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)
返回根据小时,分钟和秒参数计算出的时间值。
mysql> SELECT MAKETIME(12,15,30); +---------------------------------------------------------+ | MAKETIME(12,15,30) | +---------------------------------------------------------+ | '12:15:30' | +---------------------------------------------------------+ 1 row in set (0.00 sec)
从时间或日期时间表达式(expr)返回微秒,范围为0到999999之间的一个数字。
mysql> SELECT MICROSECOND('12:00:00.123456'); +---------------------------------------------------------+ | MICROSECOND('12:00:00.123456') | +---------------------------------------------------------+ | 123456 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回时间的分钟,范围为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)
返回日期的月份,范围为0到12。
mysql> SELECT MONTH('1998-02-03') +---------------------------------------------------------+ | MONTH('1998-02-03') | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回日期的月份的全名。
mysql> SELECT MONTHNAME('1998-02-05'); +---------------------------------------------------------+ | MONTHNAME('1998-02-05') | +---------------------------------------------------------+ | February | +---------------------------------------------------------+ 1 row in set (0.00 sec)
以“ YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS格式返回当前日期和时间作为值,具体取决于该函数是在字符串还是在数字上下文中使用。该值以当前时区表示。
mysql> SELECT NOW(); +---------------------------------------------------------+ | NOW() | +---------------------------------------------------------+ | 1997-12-15 23:50:26 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
向期间P添加N个月(格式为YYMM或YYYYMM)。返回格式为YYYYMM的值。请注意,期间参数P不是日期值。
mysql> SELECT PERIOD_ADD(9801,2); +---------------------------------------------------------+ | PERIOD_ADD(9801,2) | +---------------------------------------------------------+ | 199803 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回周期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)
返回日期的一年的四分之一,范围为1到4。
mysql> SELECT QUARTER('98-04-01'); +---------------------------------------------------------+ | QUARTER('98-04-01') | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回秒的时间,范围为0到59。
mysql> SELECT SECOND('10:05:03'); +---------------------------------------------------------+ | SECOND('10:05:03') | +---------------------------------------------------------+ | 3 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回秒参数(转换为小时,分钟和秒),形式为" 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)
这是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)
当使用第二个参数的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以与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)
以“ YYYY-MM-DD HH:MM:SS”或YYYYMMDDHHMMSS格式返回当前日期和时间作为值,具体取决于该函数是在字符串中还是在数字上下文中使用。
mysql> SELECT SYSDATE(); +---------------------------------------------------------+ | SYSDATE() | +---------------------------------------------------------+ | 2006-04-12 13:47:44 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
提取时间或日期时间表达式 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。这些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)
仅使用一个参数,此函数将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)
此函数将整数表达式间隔添加到日期或日期时间表达式 datetime_expr 中。间隔的单位由unit参数指定,该参数应为以下值之一-
可以使用所示的关键字之一或使用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)
返回日期或日期时间表达式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)
该函数的用法类似于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)
返回转换为秒的时间参数。
mysql> SELECT TIME_TO_SEC('22:23:00'); +---------------------------------------------------------+ | TIME_TO_SEC('22:23:00') | +---------------------------------------------------------+ | 80580 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
给定日期,返回天数(从0年开始的天数)。
mysql> SELECT TO_DAYS(950501); +---------------------------------------------------------+ | TO_DAYS(950501) | +---------------------------------------------------------+ | 728779 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
如果不带任何参数调用,则此函数以无符号整数形式返回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)
以“ 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)
以'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)
以'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()的两个参数形式允许您指定星期是从星期日还是星期一开始,以及返回值应在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)
返回日期的星期几索引(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)
以1到53之间的数字形式返回日期的日历周。WEEKOFYEAR()是一个兼容函数,等效于WEEK(date,3)。
mysql> SELECT WEEKOFYEAR('1998-02-20'); +---------------------------------------------------------+ | WEEKOFYEAR('1998-02-20') | +---------------------------------------------------------+ | 8 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回日期的年份,范围在1000到9999之间,对于.zero则返回0。日期。
mysql> SELECT YEAR('98-02-03'); +---------------------------------------------------------+ | YEAR('98-02-03') | +---------------------------------------------------------+ | 1998 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
返回日期的年和周。模式参数的工作方式与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()然后在给定年份中返回星期。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
HarmonyOS快速入门与实战 -〔QCon+案例研习社〕