一起养成写作习惯!这是我参与「掘金日新计划 · 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-26 | 21:57:52 | 2022-04-26 21:57:52 | 2022-04-26 | 13: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) |
|---|
| 1650981859 | 1651413859 | 2022-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()) |
|---|
| 2022 | 4 | 26 | 22 | 18 | 44 |
示例四
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') |
|---|
| April | Tuesday | 1 |
示例五
SELECT QUARTER(CURDATE()), WEEK(CURDATE()), DAYOFYEAR(NOW()), DAYOFMONTH(NOW()), DAYOFWEEK(NOW())
FROM DUAL
| QUARTER(CURDATE()) | WEEK(CURDATE()) | DAYOFYEAR(NOW()) | DAYOFMONTH(NOW()) | DAYOFWEEK(NOW()) |
|---|
| 2 | 17 | 116 | 26 | 3 |
今天先学习到这里,明天继续。