1. 查看日期/时间
1.1 查看当前的日期/时间
(1)NOW():返回当前的日期时间;
(2)CURDATE():返回当前的日期;
(3)CURTIME():返回当前的时间;
SELECT NOW(),CURDATE(),CURTIME();
NOW()/CURDATE()/CURTIME()
1.2 提取指定的日期/时间成分
(1)YEAR():提取年份;
(2)MONTH():提取月份;
(3)DAY():提取天(号/日);
(4)HOUR():提取小时;
(5)MINUTE():提取分钟;
(6)SECOND():提取秒。
SELECT NOW(),YEAR(NOW()),MONTH(NOW()),DAY(NOW()),
HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());
YEAR()/MONTH()/DAY()/HOUR()/MINUTE()/SECOND()
(7)DAYNAME():返回传入日期对应的星期数;
(8)MONTHNAME():返回传入日期对应的字符串形式的月份。
SELECT NOW(),DAYNAME(NOW()),MONTHNAME(NOW());
DAYNAME()/MONTHNAME()
(1)—(6):返回的结果是整数型,(7)—(8):返回的结果是字符型。
关于提取指定的日期/时间成分,还有一个常见的函数,那就是EXTRACT()。
(9)EXTRACT(type from date/time)
SELECT NOW(),EXTRACT(HOUR FROM NOW());
EXTRACT()
2. 格式化日期/时间
(1)DATE_FORMAT(date, format):格式化日期
SELECT NOW(),DATE_FORMAT(NOW(), '%Y%m%d');
SELECT NOW(),DATE_FORMAT(NOW(), '%Y-%m-%d');
SELECT NOW(),DATE_FORMAT(NOW(), '%y-%m-%D');
SELECT NOW(),DATE_FORMAT(NOW(), '%M %D %Y');
DATE_FORMAT(date, '%Y%m%d')
DATE_FORMAT(date, '%Y-%m-%d')
DATE_FORMAT(date, '%y-%m-%D')
DATE_FORMAT(date, '%M %D %Y')
以2023年3月5日为例:%Y——2023,%y——23,%M——March,%m——03,%D——5th,%d——05。
(2)TIME_FORMAT(time, format):格式化时间
SELECT NOW(),TIME_FORMAT(NOW(), '%H:%i:%s');
SELECT NOW(),TIME_FORMAT(NOW(), '%h:%i:%s %p');
TIME_FORMAT(time, '%H:%i:%s')
TIME_FORMAT(time, '%h:%i:%s %p')
以20:56:30为例:%H——20,%h——08,%i——56,%s——30,%p——PM。
3. 计算日期/时间
(1)DATE_ADD(date, INTERVAL expr type)
SELECT NOW(),DATE_ADD(NOW(), INTERVAL 1 DAY); -- 当前日期 + 1天
SELECT NOW(),DATE_ADD(NOW(), INTERVAL -1 YEAR); -- 当前日期 - 1年
SELECT NOW(),DATE_ADD(NOW(), INTERVAL 1 HOUR); -- 当前日期 + 1小时
DATE_ADD(date, INTERVAL 1 DAY)
DATE_ADD(date, INTERVAL -1 YEAR)
DATE_ADD(date, INTERVAL 1 HOUR)
(2)DATE_SUB(date, INTERVAL expr type)
SELECT NOW(),DATE_SUB(NOW(), INTERVAL 1 YEAR); -- 当前日期 - 1年
SELECT NOW(),DATE_SUB(NOW(), INTERVAL -1 DAY); -- 当前日期 + 1天
DATE_SUB(date, INTERVAL 1 YEAR)
DATE_SUB(date, INTERVAL -1 DAY)
(3)DATEDIFF(expr, expr2):返回天数的间隔,不考虑时分秒,且为 expr - expr2
SELECT DATEDIFF('2023-3-5', '2023-2-5'); -- 28
SELECT DATEDIFF('2023-2-5', '2023-3-5'); -- -28
DATEDIFF('2023-3-5', '2023-2-5')
DATEDIFF('2023-2-5', '2023-3-5')
(4)TIME_TO_SEC(time):返回传入时刻与零点的秒数差,不考虑日期
SELECT TIME_TO_SEC('21:00'); -- 75600 = 21*3600
SELECT TIME_TO_SEC('21:00:02'); -- 75602 = 21*3600 + 2
TIME_TO_SEC('21:00')
TIME_TO_SEC('21:00:02')
标签:39,函数,FORMAT,日期,&#,MySQL,DATE,NOW,SELECT From: https://www.cnblogs.com/Mellita/p/17894402.html