❤️持续创作,加速成长!开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情”
🎨 个人介绍
👉大家好,我是:旺仔不是程序员
👉认真分享技术,记录学习过程的点滴,如果我的分享能为你带来帮助,请支持我奥🍻
👉你的支持,是我每天更新的动力。
👉赞点:👍 留言:✍ 收藏:⭐
👉个人格言:想法一步一步的落实,才是你我前进最佳选择。
日期和时间函数
1. 获取整体时间
- 获取当前日期的函数和获取当前时间的函数
# 使用日期函数获取系统当前日期,
# “CURDATE()+0”将当前日期值转换为数值型
# 输入语句如下:
SELECT CURDATE(),CURRENT_DATE(), CURDATE() + 0;
# 使用时间函数获取系统当前时间,输入语句如下:
SELECT CURTIME(),CURRENT_TIME(),CURTIME() + 0;
# 使用日期时间函数获取当前系统日期和时间
# CURTIME ()+0”将当前时间值转换为数值型。
# 输入语句如下:
SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
- 获取当前日期和时间的函数
# 使用日期时间函数获取当前系统日期和时间
# 输入语句如下:
SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
- UNIX时间戳函数
# 使用UNIX_TIMESTAMP函数返回UNIX格式的时间戳,输入语句如下:
SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW()), NOW();
# 使用FROM_UNIXTIME函数将UNIX时间戳转换为普通格式时间,输入语句如下:
SELECT FROM_UNIXTIME('1669600036');
- 返回UTC日期的函数和返回UTC时间的函数
# 使用UTC_DATE()函数返回当前UTC日期值,
# “CURDATE()+0”将当前日期值转换为数值型
# 当前时间以‘HH:MM:SS’或HHMMSS的格式返回
# 输入语句如下:
SELECT UTC_DATE(), UTC_DATE() + 0;
# 使用UTC_TIME()函数返回当前UTC时间值,输入语句如下:
SELECT UTC_TIME(), UTC_TIME() + 0;
2. 获取部分时间
- 获取月份的函数MONTH(date)和MONTHNAME(date)
# 使用MONTH()函数返回指定日期中的月份
# 获取的是数字,如 2
# 输入语句如下:
SELECT MONTH('2022-02-13'); #
# 使用MONTHNAME()函数返回指定日期中的月份的名称
# 获取名称,如:February
# 输入语句如下:
SELECT MONTHNAME('2022-02-13');
- 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
# 使用DAYNAME()函数返回指定日期的工作日名称,输入语句如下:
SELECT DAYNAME('2022-11-28');
# 使用DAYOFWEEK()函数返回日期对应的周索引,输入语句如下:
# 1表示周日,2表示周一,...,7表示周六
SELECT DAYOFWEEK('2022-11-28');
# 使用WEEKDAY()函数返回日期对应的工作日索引,输入语句如下:
# 0表示周一,1表示周二,...,6表示周日
SELECT WEEKDAY('2022-11-28 22:23:00'), WEEKDAY('2022-11-28');
- 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
# 使用DAYOFYEAR()函数返回指定日期在一年中的位置,输入语句如下:
SELECT DAYOFYEAR('2022-02-25');
# 使用DAYOFYEAR()函数返回指定日期在一个月中的位置,输入语句如下:
SELECT DAYOFMONTH('2022-02-21');
- 获取年份、季度、小时、分钟和秒钟的函数
# 使用YEAR()函数返回指定日期对应的年份
# ‘00~69’转换为‘2000~2069’,‘70~99’转换为‘1970~1999’
# 输入语句如下:
SELECT YEAR('22-02-03'),YEAR('96-02-03');
# 使用QUARTER()函数返回指定日期对应的季度,
# 1-3-31 为1; 4-6-30 为2 依次类推
# 输入语句如下:
SELECT QUARTER('22-01-01');
# 使用MINUTE()函数返回指定时间的分钟值
# MINUTE(time)返回time对应的分钟数,范围是0~59
# 输入语句如下:
SELECT MINUTE('22-02-03 10:10:03');
# 使用SECOND()函数返回指定时间的秒值,输入语句如下:
SELECT SECOND('10:05:03');
3. 操作时间函数
- 获取日期的指定值的函数EXTRACT(type FROM date)
# 使用EXTRACT函数提取日期或者时间值,输入语句如下:
SELECT EXTRACT(YEAR FROM '2022-07-02') AS col1 # 返回2022
SELECT EXTRACT(YEAR_MONTH FROM '2022-07-12 01:02:03') AS col2 # 返回 202207
SELECT EXTRACT(DAY_MINUTE FROM '2022-07-12 01:02:03') AS col3 # 返回 120102
- 时间和秒钟转换的函数
# 使用TIME_TO_SEC函数将时间值转换为秒值,输入语句如下:
SELECT TIME_TO_SEC('23:23:00');
# 使用SEC_TO_TIME()函数将秒值转换为时间格式,输入语句如下:
SELECT SEC_TO_TIME(2345),SEC_TO_TIME(2345)+0
SELECT TIME_TO_SEC('23:23:00'), SEC_TO_TIME(84180)
- 计算日期和时间的函数
# 使用DATE_ADD()和ADDDATE()函数执行日期加操作,输入语句如下:
SELECT DATE_ADD('2022-12-31 23:59:59', INTERVAL 1 SECOND) AS col1
SELECT ADDDATE('2022-12-31 23:59:59', INTERVAL 1 SECOND) AS col2
SELECT DATE_ADD('2022-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND) AS col3
# 使用DATE_SUB和SUBDATE函数执行日期减操作,输入语句如下:
SELECT DATE_SUB('2022-01-02', INTERVAL 31 DAY) AS col1
SELECT SUBDATE('2022-01-02', INTERVAL 31 DAY) AS col2
SELECT DATE_SUB('2022-01-01 00:01:00',INTERVAL '0 0:1:1' DAY_SECOND) AS col3
# 使用ADDTIME进行时间加操作,输入语句如下:
SELECT ADDTIME('2022-12-31 23:59:59','1:1:1'), ADDTIME('02:02:02', '02:00:00');
# 使用SUBTIME()函数执行时间减操作,输入语句如下:
SELECT SUBTIME('2022-12-31 23:59:59','1:1:1'), SUBTIME('02:02:02','02:00:00');
# 使用DATEDIFF()函数计算两个日期之间的间隔天数,输入语句如下:
SELECT DATEDIFF('2022-12-31 23:59:59','2022-12-30') AS col1
# 小减去大的,就是负数
SELECT DATEDIFF('2022-11-30 23:59:59','2022-12-31') AS col2
- 将日期和时间格式化的函数
# 使用DATE_FORMAT()函数格式化输出日期和时间值,输入语句如下:
SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') AS col1
SELECT DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j') AS col2
# 使用TIME_FORMAT()函数格式化输入时间值,输入语句如下:
SELECT TIME_FORMAT('16:00:00', '%H %k %h %I %l')
# 使用GET_FORMAT()函数显示不同格式化类型下的格式字符串,输入语句如下:
SELECT GET_FORMAT(DATE,'EUR'), GET_FORMAT(DATE,'USA')
# 在DATE_FORMAT()函数中,使用GET_FORMAT函数返回的显示格式字符串来显示指定的日期值,输入语句如下:
SELECT DATE_FORMAT('2000-10-05 22:23:00', GET_FORMAT(DATE,'USA') )