1.获取日期、时间
函数 |
小写 |
用法 |
例 |
CURDATE() ,CURRENT_DATE() |
curdate,current_date |
返回当前日期,只包含年月日 |
2022-08-11 |
CURTIME() ,CURRENT_TIME() |
curtime,current_time |
返回当前时间,只包含时分秒 |
14:39:12 |
NOW() ,SYSDATE(),CURRENT_TIMESTAMP(),LOCALTIME(),LOCALTIMESTAMP() |
now,sysdate,current_timestamp,localtime,localtimestamp |
返回当前系统日期和时间 |
2022-08-11 14:39:12 |
UTC_DATE() |
utc_date |
返回UTC(世界标准时间)日期 |
2022-08-11 |
UTC_TIME() |
utc_time |
返回UTC(世界标准时间)时间 |
06:39:12 |
SELECT
CURDATE(), -- 2022-08-11
CURTIME(), -- 14:39:12
NOW(), -- 2022-08-11 14:39:12
SYSDATE()+0, -- 20220811143912
UTC_DATE(),UTC_DATE()+0, -- 2022-08-11 20220811
UTC_TIME(),UTC_TIME()+0 -- 06:39:12 63912
FROM DUAL;
2.日期与时间戳的转换
函数 |
小写 |
用法 |
例 |
UNIX_TIMESTAMP() |
unix_timestamp |
以Unix时间戳的形式返回当前时间 |
1660201350 |
UNIX_TIMESTAMP(date) |
unix_timestamp |
将时间date以Unix时间戳的形式返回 |
1320981071 |
FROM_UNIXTIME(timestamp) |
from_unixtime |
将Unix时间戳转化为普通格式时间 |
2019-12-15 11:35:10 |
SELECT
UNIX_TIMESTAMP(NOW()), -- 1660201350
UNIX_TIMESTAMP(CURDATE()), -- 1660147200
UNIX_TIMESTAMP(CURTIME()), -- 1660201350
UNIX_TIMESTAMP('2011-11-11 11:11:11'), -- 1320981071
FROM_UNIXTIME(1576380910) -- 2019-12-15 11:35:10
FROM DUAL;
3.获取月份、星期、星期数、天数等函数
函数 |
小写 |
用法 |
例 |
YEAR(date),MONTH(date),DAY(date) |
year,month,day |
返回具体的日期值 |
|
HOUR(time),MINUTE(time),SECOND(time) |
hour,minute,second |
返回具体的时间值 |
|
MONTHNAME(date) |
monthName |
返回月份名称 |
January,... |
DAYNAME(date) |
dayName |
返回星期几 |
MonDay,TuesDay...SunDay |
WEEKDAY(date) |
weekDay |
返回周几,周一为0,周日为6 |
0,1,2,3,4,5,6 |
QUARTER(date) |
quarter |
返回日期对应的季度 |
1,2,3,4 |
WEEK(date),WEEKOFYEAR(date) |
week,weekOfYear |
返回一年中的第几周 |
|
DAYOFMONTH(date) |
dayOfMonth |
返回日期位于所在月份的第几天 |
|
DAYOFWEEK(date) |
dayOfWeek |
返回周几,周日为1,周六为7 |
2,3,4,5,6,7,1 |
SELECT
YEAR(CURDATE()), -- 2022
MONTH(CURDATE()), -- 8
DAY(CURDATE()), -- 11
HOUR(CURTIME()), -- 16
MINUTE(NOW()), -- 11
SECOND(SYSDATE()) -- 16
FROM DUAL;
SELECT
MONTHNAME('2021-10-26'), -- October
DAYNAME('2021-10-26'), -- Tuesday
WEEKDAY('2021-10-26'), -- 1
QUARTER(CURDATE()), -- 3
WEEK(CURDATE()), -- 32
DAYOFYEAR(NOW()), -- 233
DAYOFMONTH(NOW()), -- 11
DAYOFWEEK(NOW()) -- 5
FROM DUAL;
4.日期的操作函数
函数 |
小写 |
用法 |
EXTRACT(type FROM date) |
extract |
返回指定日期中特定的部分,type指定返回的值 |
该函数中type的取值可以为
第一组:
type取值 |
小写 |
含义 |
MICROSECOND |
microsecond |
返回毫秒数 |
SECOND |
second |
返回秒数 |
MINUTE |
minute |
返回分钟数 |
HOUR |
hour |
返回小时数 |
DAY |
day |
返回天数 |
WEEK |
week |
返回日期在一年中的第几个星期 |
MONTH |
month |
返回日期在一年中的第几个月 |
QUARTER |
quarter |
返回日期在一年中的第几个季度 |
YEAR |
year |
返回日期中的年份 |
第二组:
type取值 |
小写 |
含义 |
SECOND_MICROSECOND |
second_microsecond |
返回秒和毫秒值 |
MINUTE_MICROSECOND |
minute_microsecond |
返回分钟和毫秒值 |
MINUTE_SECOND |
minute_second |
返回分钟和秒值 |
HOUR_MICROSECOND |
hour_microsecond |
返回小时和毫秒值 |
HOUR_MINUTE |
hour_minute |
返回小时和分钟值 |
DAY_MICROSECOND |
day_microsecond |
返回天和毫秒值 |
DAY_SECOND |
day_second |
返回天和秒值 |
DAY_MINUTE |
day_minute |
返回天和分钟值 |
DAY_HOUR |
day_hour |
返回天和小时 |
YEAR_MONTH |
year_month |
返回年和月 |
SELECT
EXTRACT(MINUTE FROM NOW()), -- 47
EXTRACT(WEEK FROM NOW()), -- 32
EXTRACT(QUARTER FROM NOW()), -- 3
EXTRACT(MINUTE_SECOND FROM NOW()) -- 4704
FROM DUAL;