MySQL学习-函数(六)

444 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第26天,点击查看活动详情

前言

上篇我们又学习了一部分MySQL中的函数。有兴趣的小伙伴可以阅读(# MySQL学习-函数(五))。
下面继续学习MySQL中的函数。

日期和时间函数

获取日期和时间

函数用法
CURDATE(),CURRENT_DATE()返回当前日期,只包含年、月、日
CURTIME(), CURRENT_TIME()返回当前时间,只包含时、分、秒
NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP()返回当前系统日期和时间
UTC_DATE()返回UTC(世界标准时间)日期
UTC_TIME()返回UTC(世界标准时间)时间

示例一

SELECT CURDATE(), CURTIME(), NOW(), UTC_DATE(), UTC_TIME()
FROM DUAL
CURDATE()CURTIME()NOW()UTC_DATE()UTC_TIME()
2022-04-2621:57:522022-04-26 21:57:522022-04-2613:57:52

UTC_TIME与我们北京时间相差8个时区,结果差8小时。

日期与时间戳的转换

函数用法
UNIX_TIMESTAMP()以UNIX时间戳的形式返回当前时间。
UNIX_TIMESTAMP(date)将时间date以UNIX时间戳的形式返回。
FROM_UNIXTIME(timestamp)将UNIX时间戳的时间转换为普通格式的时间

示例二

SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(2022-05-01 22:04:19), FROM_UNIXTIME(1650981859)
FROM DUAL
UNIX_TIMESTAMP()UNIX_TIMESTAMP(2022-05-01 22:04:19)FROM_UNIXTIME(1650981859)
165098185916514138592022-04-26 22:04:19

获取月份,星期,星期数,天数等函数

函数用法
YEAR(date) / MONTH(date) / DAY(date)返回具体的日期值
HOUR(time) / MINUTE(time) / SECOND(time)返回具体的时间值
MONTHNAME(date)返回月份:January,…
DAYNAME(date)返回星期几:MONDAY,TUESDAY…SUNDAY
WEEKDAY(date)返回周几,注意,周1是0,周2是1,。。。周日是6
QUARTER(date)返回日期对应的季度,范围为1~4
WEEK(date) , WEEKOFYEAR(date)返回一年中的第几周
DAYOFYEAR(date)返回日期是一年中的第几天
DAYOFMONTH(date)返回日期位于所在月份的第几天
DAYOFWEEK(date)返回周几,注意:周日是1,周一是2,。。。周六是7

示例三

SELECT YEAR(CURDATE()), MONTH(CURDATE()), DAY(CURDATE()), HOUR(CURTIME()), MINUTE(NOW()), SECOND(SYSDATE())
FROM DUAL
YEAR(CURDATE())MONTH(CURDATE())DAY(CURDATE())HOUR(CURTIME())MINUTE(NOW())SECOND(SYSDATE())
2022426221844

示例四

SELECT MONTHNAME('2022-04-26'), DAYNAME('2022-04-26'), WEEKDAY('2022-04-26')
FROM DUAL
MONTHNAME('2022-04-26')DAYNAME('2022-04-26')WEEKDAY('2022-04-26')
AprilTuesday1

示例五

SELECT QUARTER(CURDATE()), WEEK(CURDATE()), DAYOFYEAR(NOW()), DAYOFMONTH(NOW()), DAYOFWEEK(NOW())
FROM DUAL
QUARTER(CURDATE())WEEK(CURDATE())DAYOFYEAR(NOW())DAYOFMONTH(NOW())DAYOFWEEK(NOW())
217116263

今天先学习到这里,明天继续。