获取当前日期和时间
NOW():返回当前的日期和时间。
CURDATE():返回当前的日期。
CURTIME():返回当前的时间。
SELECT NOW(), CURDATE(), CURTIME();
日期和时间格式化
DATE_FORMAT(date, format):根据指定的格式字符串格式化日期。
STR_TO_DATE(str, format):将字符串转换成日期格式。
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
SELECT STR_TO_DATE('2024-09-18', '%Y-%m-%d');
提取日期部分
YEAR(date):返回日期的年份部分。
MONTH(date):返回日期的月份部分。
DAY(date):返回日期的日部分。
HOUR(time):返回时间的小时部分。
MINUTE(time):返回时间的分钟部分。
SECOND(time):返回时间的秒部分。
SELECT YEAR(NOW()), MONTH(NOW()), DAY(NOW());
SELECT HOUR(NOW()), MINUTE(NOW()), SECOND(NOW());
日期和时间的算术操作
DATE_ADD(date, INTERVAL expr unit):向日期添加指定的时间间隔。
DATE_SUB(date, INTERVAL expr unit):从日期减去指定的时间间隔。
ADDDATE(date, INTERVAL expr unit):同 DATE_ADD。
SUBDATE(date, INTERVAL expr unit):同 DATE_SUB。
TIMESTAMPADD(unit, interval, datetime):向日期/时间添加时间间隔。
TIMESTAMPDIFF(unit, datetime1, datetime2):计算两个日期/时间之间的差值。
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY), DATE_SUB(NOW(), INTERVAL 1 DAY);
SELECT TIMESTAMPADD(DAY, 1, NOW()), TIMESTAMPDIFF(DAY, '2024-09-17', '2024-09-19');
其他日期函数
LAST_DAY(date):返回指定月份的最后一天。
UNIX_TIMESTAMP(date):返回日期对应的 Unix 时间戳(以秒计)。
FROM_UNIXTIME(unix_timestamp):将 Unix 时间戳转换为日期和时间。
EXTRACT(field FROM date):从日期中抽取指定的部分。
SELECT LAST_DAY('2024-09-01');
SELECT UNIX_TIMESTAMP(NOW()), FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()));
SELECT EXTRACT(YEAR_MONTH FROM NOW());
日期和时间的比较
DATEDIFF(date1, date2):计算两个日期之间的天数差。
DATE(date):返回日期部分,去除时间部分。
TIME(date):返回时间部分。
SELECT DATEDIFF('2024-09-18', '2024-09-01');
SELECT DATE(NOW()), TIME(NOW());
日期字符串转换
CONVERT_TZ(datetime, old_tz, new_tz):将日期时间从一个时区转换到另一个时区。
MAKE_DATE(year, month, day):构造一个日期。
SELECT CONVERT_TZ(NOW(), '+00:00', '+08:00');
SELECT MAKE_DATE(2024, 9, 18);