| 函数/运算符 | 描述 |
|---|---|
|
ADDDATE() DATE_ADD() |
为日期时间增加一个时间间隔 |
| ADDTIME() | 增加指定时间 |
| CONVERT_TZ() | 将日期时间从一个时区转换为另一个时区 |
|
CURDATE() CURRENT_DATE() CURRENT_DATE |
返回当前日期 |
|
CURTIME() CURRENT_TIME() CURRENT_TIME |
返回当前时间 |
|
CURRENT_TIMESTAMP() CURRENT_TIMESTAMP NOW()、LOCALTIME() LOCALTIME LOCALTIMESTAMP() LOCALTIMESTAMP |
返回当前日期和时间 |
| DATE() | 获取日期时间中的日期部分 |
| DATE_FORMAT() | 将日期时间格式化成字符串 |
|
DATE_SUB() SUBDATE() |
从日期时间中减去一个时间间隔 |
| DATEDIFF() | 计算两个日期之间的天数 |
|
DAY() DAYOFMONTH() |
返回日期属于一月中的第几天(0-31) |
| DAYNAME() | 返回日期是星期几 |
| DAYOFWEEK() | 返回日期是一星期中的第几天(1 = 星期天) |
| DAYOFYEAR() | 返回日期是一年中的第几天(1-366) |
| EXTRACT() | 获取日期时间中某个部分,例如年、月、时、分等 |
| FROM_DAYS() | 将一个数字形式的天数(从第 0 年以来)转换为日期 |
| FROM_UNIXTIME() | 将 Unix 时间戳转换为日期时间 |
| GET_FORMAT() | 返回指定的格式字符串 |
| HOUR() | 获取时间中的小时 |
| LAST_DAY | 返回日期所属月份的最后一天 |
| MAKEDATE() | 返回一个由年和日组成的日期 |
| MAKETIME() | 返回一个由时、分、秒组成的时间 |
| MICROSECOND() | 返回时间中的毫秒 |
| MINUTE() | 返回时间中的分钟 |
| MONTH() | 返回日期中的月份 |
| MONTHNAME() | 返回日期中的月份名称 |
| PERIOD_ADD() | 为一个时间段增加指定的月数 |
| PERIOD_DIFF() | 返回两个时间段之间相差的月数 |
| QUARTER() | 返回日期所属的季节 |
| SEC_TO_TIME() | 将数字形式的秒数转换为时间类型 |
| SECOND() | 返回时间中的秒数(0-59) |
| STR_TO_DATE() | 将字符串转换为日期时间类型 |
| SUBTIME() | 减去指定时间 |
| SYSDATE() | 返回函数执行时的日期时间 |
| TIME() | 获取日期时间中的时间部分 |
| TIME_FORMAT() | 将时间格式化成字符串 |
| TIME_TO_SEC() | 将时间转换为秒数 |
| TIMEDIFF() | 计算两个时间点之间相差的时间 |
| TIMESTAMP() | 一个参数时返回参数对应的日期时间,两个参数时将一个日期时间增加指定的时间 |
| TIMESTAMPADD() | 为一个日期时间增加指定的时间间隔 |
| TIMESTAMPDIFF() | 返回两个日期时间之间相差的时间间隔 |
| TO_DAYS() | 返回从第 0 年到该日期时间以来的天数 |
| TO_SECONDS() | 返回从第 0 年到该日期时间以来的秒数 |
| UNIX_TIMESTAMP() | 返回 Unix 时间戳 |
|
UTC_DATE() UTC_DATE |
返回当前 UTC 日期 |
|
UTC_TIME() UTC_TIME |
返回当前 UTC 时间 |
|
UTC_TIMESTAMP() UTC_TIMESTAMP |
返回当前 UTC 日期和时间 |
| WEEK() | 返回日期属于一年中的第几周 |
| WEEKDAY() | 返回日期属于一周中的第几天(0-6) |
| WEEKOFYEAR() | 返回日期所属的日历周(1-53) |
| YEAR() | 返回日期中的年份 |
| YEARWEEK() | 返回日期所属的年分和周数 |
select curdate(), current_date + 0;
curdate() |current_date + 0|
----------|----------------|
2020-07-26| 20200726|
select curtime(), current_time + 0;
curtime()|current_time + 0|
---------|----------------|
20:59:57| 205957|
select current_time(6);
current_time(6)|
---------------|
21:00:15.432279|
select now(), current_timestamp(6), localtime, localtimestamp(6);
now() |current_timestamp(6) |localtime |localtimestamp(6) |
-------------------|--------------------------|-------------------|--------------------------|
2020-07-26 21:01:03|2020-07-26 21:01:03.369695|2020-07-26 21:01:03|2020-07-26 21:01:03.369695|
select sysdate(), sysdate(6);
sysdate() |sysdate(6) |
-------------------|--------------------------|
2020-07-26 21:08:53|2020-07-26 21:08:53.322645|
select now(), sysdate(), sleep(6), now(), sysdate();
now() |sysdate() |sleep(6)|now() |sysdate() |
-------------------|-------------------|--------|-------------------|-------------------|
2020-07-26 21:11:50|2020-07-26 21:11:50| 0|2020-07-26 21:11:50|2020-07-26 21:11:56|
select utc_date(), utc_time(6), utc_timestamp(6);
utc_date()|utc_time(6) |utc_timestamp(6) |
----------|---------------|--------------------------|
2020-07-26|13:23:41.993849|2020-07-26 13:23:41.993849|
select from_days(737997);
from_days(737997)|
-----------------|
2020-07-26|
select from_unixtime(1595772000), from_unixtime(1595772000, '%Y %M %d %h:%i:%s %p');
from_unixtime(1595772000)|from_unixtime(1595772000, '%Y %M %d %h:%i:%s %p')|
-------------------------|-------------------------------------------------|
2020-07-26 22:00:00|2020 七月 26 10:00:00 PM |
select makedate(2020, 210), makedate(2020, 0);
makedate(2020, 210)|makedate(2020, 0)|
-------------------|-----------------|
2020-07-28| |
maketime(10, 20, 30)|maketime(10, 20, 30.456)|
--------------------|------------------------|
10:20:30| 10:20:30.456000|
select sec_to_time(3600), sec_to_time(3600)+0;
sec_to_time(3600)|sec_to_time(3600)+0|
-----------------|-------------------|
01:00:00| 10000|
select str_to_date('5 1, 2020','%m %d, %Y'), str_to_date('1:00:00','%H:%i:%s');
str_to_date('5 1, 2020','%m %d, %Y')|str_to_date('1:00:00','%H:%i:%s')|
------------------------------------|---------------------------------|
2020-05-01| 01:00:00|
select timestamp('2020-07-26'), timestamp('2020-07-26 02:00:00', '10:00:00');
timestamp('2020-07-26')|timestamp('2020-07-26 02:00:00', '10:00:00')|
-----------------------|--------------------------------------------|
2020-07-26 00:00:00| 2020-07-26 12:00:00|
select date('2020-07-26 10:00:00'), date('2020-07-26'), time('2020-07-26 10:00:00.450');
date('2020-07-26 10:00:00')|date('2020-07-26')|time('2020-07-26 10:00:00.450')|
---------------------------|------------------|-------------------------------|
2020-07-26| 2020-07-26| 10:00:00.450000|
select extract(year from '2020-07-26') extract,
extract(year_month from '2020-07-26') extract,
extract(hour_second from '2020-07-26 12:30:45') extract;
extract|extract|extract|
-------|-------|-------|
2020| 202007| 123045|
select year('2020-07-26'),year('0000-01-01');
year('2020-07-26')|year('0000-01-01')|
------------------|------------------|
2020| 0|
select yearweek('2020-01-01'),yearweek('2020-01-01', 3);
yearweek('2020-01-01')|yearweek('2020-01-01', 3)|
----------------------|-------------------------|
201952| 202001|
select quarter('2020-07-26');
quarter('2020-07-26')|
---------------------|
3|
select month('2020-07-26'), monthname('2020-07-26');
month('2020-07-26')|monthname('2020-07-26')|
-------------------|-----------------------|
7|七月 |
| mode | 每周的第 1 天 | 一年中的周数 | 第 1 周的定义 |
|---|---|---|---|
| 0 | 星期日 | 0-53 | 星期天属于这一年的第一个星期 |
| 1 | 星期一 | 0-53 | 至少有 4 天以上属于这一年的第一个星期 |
| 2 | 星期日 | 1-53 | 星期天属于这一年的第一个星期 |
| 3 | 星期一 | 1-53 | 至少有 4 天以上属于这一年的第一个星期 |
| 4 | 星期日 | 0-53 | 至少有 4 天以上属于这一年的第一个星期 |
| 5 | 星期一 | 0-53 | 星期一属于这一年的第一个星期 |
| 6 | 星期日 | 1-53 | 至少有 4 天以上属于这一年的第一个星期 |
| 7 | 星期一 | 1-53 | 星期一属于这一年的第一个星期 |
select week('2020-01-01'), week('2020-01-01', 2), week('2020-01-01', 4), week('2020-01-01', 6);
week('2020-01-01')|week('2020-01-01', 2)|week('2020-01-01', 4)|week('2020-01-01', 6)|
------------------|---------------------|---------------------|---------------------|
0| 52| 1| 1|
select dayofyear('2020-07-26'), dayofmonth('2020-07-26'), dayofweek('2020-07-26');
dayofyear('2020-07-26')|dayofmonth('2020-07-26')|dayofweek('2020-07-26')|
-----------------------|------------------------|-----------------------|
208| 26| 1|
select dayname('2020-07-26');
dayname('2020-07-26')|
---------------------|
星期日 |
select weekday('2020-07-26');
weekday('2020-07-26')|
---------------------|
6|
select last_day('2020-07-26');
last_day('2020-07-26')|
----------------------|
2020-07-31|
select hour('2020-07-26 10:00:00'), hour('30:20:10');
hour('2020-07-26 10:00:00')|hour('30:20:10')|
---------------------------|----------------|
10| 30|
select minute('2020-07-26 10:20:30'), minute('30:20:10');
minute('2020-07-26 10:20:30')|minute('30:20:10')|
-----------------------------|------------------|
20| 20|
select second('10:20:30'), microsecond('30:20:10.123456');
second('10:20:30')|microsecond('30:20:10.123456')|
------------------|------------------------------|
30| 123456|
select date_format(now(), '%W %d %M %Y, %r');
date_format(now(), '%W %d %M %Y, %r')|
-------------------------------------|
星期一 27 七月 2020, 03:29:19 AM |
| 格式说明符 | 描述 |
|---|---|
| %a | 星期的简写(Mon、一) |
| %b | 月份名称的简写(Jan、1月) |
| %c | 数字形式的月份(0-12) |
| %D | 一个月中的第几天,带英文后缀(0th、1st、2nd、…) |
| %d | 一个月中的第几天(00-31) |
| %e | 一个月中的第几天(0-31) |
| %f | 毫秒(000000-999999) |
| %H | 小时(00-23) |
| %h | 小时(01-12) |
| %I | 小时(01-12) |
| %i | 分钟(00-59) |
| %j | 一年中的第几天(001-366) |
| %k | 小时(0-23) |
| %l | 小时(1-12) |
| %M | 月份名称(January、一月) |
| %m | 月份(00-12) |
| %p | 上午 AM 或者下午 PM |
| %r | 12 小时制的时间(hh:mm:ss 加上 AM 或者 PM) |
| %S | 秒数(00-59) |
| %s | 秒数(00-59) |
| %T | 24 小时制的时间(hh:mm:ss) |
| %U | 一年中的第几周(00-53),星期天是一周的第一天;对应 WEEK() 函数中的 mode = 0 |
| %u | 一年中的第几周(00-53),星期一是一周的第一天;对应 WEEK() 函数中的 mode = 1 |
| %V | 一年中的第几周(01-53),星期天是一周的第一天;对应 WEEK() 函数中的 mode = 2;和 %X 一起使用 |
| %v | 一年中的第几周(01-53),星期一是一周的第一天;对应 WEEK() 函数中的 mode = 3;和 %x 一起使用 |
| %W | 星期的名称(Monday、星期一) |
| %w | 数字形式的星期(0=星期天、6=星期六) |
| %X | 当前周所在的年份,星期天是一周的第一天;和 %V 一起使用 |
| %x | 当前周所在的年份,星期一是一周的第一天;和 %v 一起使用 |
| %Y | 4 位数的年份 |
| %y | 2 位数的年份 |
| %% | 字面值 % |
| %x | 除了以上列出的字符之外的字面值 x |
select time_format(now(), '%r');
time_format(now(), '%r')|
------------------------|
04:24:49 AM |
select time_to_sec('1:00:00');
select to_days('2020-07-26'), from_days(737997);
to_days('2020-07-26')|from_days(737997)|
---------------------|-----------------|
737997| 2020-07-26|
select to_seconds('2020-07-26 00:00:00');
to_seconds('2020-07-26 00:00:00')|
---------------------------------|
63762940800|
select unix_timestamp(), unix_timestamp(now());
unix_timestamp()|unix_timestamp(now())|
----------------|---------------------|
1595796384| 1595796384|
select date_format('2020-07-26',get_format(date,'USA')) date_format,
str_to_date('2020-07-26 20:30:00',GET_FORMAT(DATETIME,'ISO')) str_to_date;
date_format|str_to_date |
-----------|-------------------|
07.26.2020 |2020-07-26 20:30:00|
select adddate('2020-01-01', interval 1 hour), date_add('2020-01-01', interval 1 hour), adddate('2020-01-01', 1);
adddate('2020-01-01', interval 1 hour)|date_add('2020-01-01', interval 1 hour)|adddate('2020-01-01', 1)|
--------------------------------------|---------------------------------------|------------------------|
2020-01-01 01:00:00 |2020-01-01 01:00:00 |2020-01-02 |
select subdate('2020-01-01', interval 1 day), subdate('2020-01-01', 1), date_sub('2020-01-01', interval 1 day);
subdate('2020-01-01', interval 1 day)|subdate('2020-01-01', 1)|date_sub('2020-01-01', interval 1 day)|
-------------------------------------|------------------------|--------------------------------------|
2019-12-31 |2019-12-31 |2019-12-31 |
select '2020-01-01' + interval 1 day, '2020-01-01 10:00:00' - interval 1 hour;
'2020-01-01' + interval 1 day|'2020-01-01 10:00:00' - interval 1 hour|
-----------------------------|---------------------------------------|
2020-01-02 |2020-01-01 09:00:00 |
select addtime('2020-01-01 00:00:00', '10:00:00'), subtime('10:00:00', '10:00:00');
addtime('2020-01-01 00:00:00', '10:00:00')|subtime('10:00:00', '10:00:00')|
------------------------------------------|-------------------------------|
2020-01-01 10:00:00 |00:00:00 |
select period_add(202001, 6);
period_add(202001, 6)|
---------------------|
202007|
select timestampadd(day, 1, '2020-07-26'), timestampadd(minute, 10, '2020-07-26');
select datediff('2020-01-02','2020-01-01'), datediff('2020-01-02 00:00:00','2020-01-01 23:59:59');
datediff('2020-01-02','2020-01-01')|datediff('2020-01-02 00:00:00','2020-01-01 23:59:59')|
-----------------------------------|-----------------------------------------------------|
1| 1|
select period_diff(000002, 000001);
period_diff(000002, 000001)|
---------------------------|
1|
select timediff('2020-07-26 23:59:59', '2020-07-25 00:00:00');
timediff('2020-07-26 23:59:59', '2020-07-25 00:00:00')|
------------------------------------------------------|
47:59:59|
select timestampdiff(second,'1970-01-01 08:00:00', '2020-07-26'), unix_timestamp('2020-07-26');
timestampdiff(second,'1970-01-01 08:00:00', '2020-07-26')|unix_timestamp('2020-07-26')|
---------------------------------------------------------|----------------------------|
1595692800| 1595692800|
select convert_tz('2020-07-26 00:00:00','+00:00','+08:00');
convert_tz('2020-07-26 00:00:00','+00:00','+08:00')|
---------------------------------------------------|
2020-07-26 08:00:00|
原文作者:SQL编程思想;如有侵权,请联系管理员删除。