MySQL日期函数是处理数据库中时间和日期数据的重要工具,它们可以帮助用户进行各种复杂的日期和时间操作,以下是一些常见的MySQL日期函数及其用法:
获取当前日期和时间
1、NOW(): 返回当前的日期和时间。
SELECT NOW();
2、CURDATE(): 返回当前日期。
SELECT CURDATE();
3、CURTIME(): 返回当前时间。
SELECT CURTIME();
4、CURRENT_TIMESTAMP(): 返回当前的日期和时间,类似于NOW()。
SELECT CURRENT_TIMESTAMP();
5、SYSDATE(): 返回服务器的当前日期和时间,与NOW()类似,但值在函数执行时动态获得。
SELECT SYSDATE();
日期和时间加减
1、ADDDATE(date, INTERVAL value unit): 给日期加上指定的时间间隔。
SELECT ADDDATE('2023-11-11', INTERVAL 31 DAY); -结果为2023-12-12
2、ADDTIME(time, INTERVAL value unit): 给时间加上指定的时间间隔。
SELECT ADDTIME('11:11:11', INTERVAL 5 SECOND); -结果为11:11:16
3、DATE_ADD(date, INTERVAL value unit): 计算起始日期加上一个时间段后的日期。
SELECT DATE_ADD('2023-11-11', INTERVAL 10 DAY); -结果为2023-11-21
4、SUBDATE(date, INTERVAL value unit): 日期减去指定的时间间隔。
SELECT SUBDATE('2023-11-11', INTERVAL 1 DAY); -结果为2023-11-10
日期格式化和转换
1、DATE_FORMAT(date, format): 按指定格式显示日期。
SELECT DATE_FORMAT('2023-11-11', '%Y-%m-%d %r'); -结果为2023-11-11 11:11:11 AM
2、STR_TO_DATE(str, format): 将字符串转换为日期。
SELECT STR_TO_DATE('August 10, 2017', '%M %d, %Y'); -结果为2017-08-10
3、TIME_FORMAT(time, format): 按指定格式显示时间。
SELECT TIME_FORMAT('11:11:11', '%H:%i:%s'); -结果为11:11:11
提取日期和时间部分
1、YEAR(date): 提取年份。
SELECT YEAR('2023-11-11'); -结果为2023
2、MONTH(date): 提取月份。
SELECT MONTH('2023-11-11'); -结果为11
3、DAY(date): 提取天数。
SELECT DAY('2023-11-11'); -结果为11
4、WEEKDAY(date): 返回星期几(0表示星期一,6表示星期日)。
SELECT WEEKDAY('2023-11-11'); -结果为5(星期六)
5、DAYOFMONTH(date): 计算日期是本月的第几天。
SELECT DAYOFMONTH('2023-11-11'); -结果为11
6、DAYOFWEEK(date): 返回日期是星期几(1表示星期日,7表示星期六)。
SELECT DAYOFWEEK('2023-11-11'); -结果为6(星期六)
7、DAYOFYEAR(date): 计算日期是本年的第几天。
SELECT DAYOFYEAR('2023-11-11'); -结果为315(假设2023年是非闰年)
8、HOUR(time): 返回小时值。
SELECT HOUR('11:11:11'); -结果为11
9、MINUTE(time): 返回分钟值。
SELECT MINUTE('11:11:11'); -结果为11
10、SECOND(time): 返回秒数。
SELECT SECOND('11:11:11'); -结果为11
日期差异计算
1、DATEDIFF(date1, date2): 计算两个日期之间的天数差。
SELECT DATEDIFF('2023-12-12', '2023-11-11'); -结果为31
2、TIMEDIFF(time1, time2): 计算两个时间之间的差值。
SELECT TIMEDIFF('13:10:11', '13:10:10'); -结果为00:00:01
3、TIMESTAMPDIFF(unit, time1, time2): 计算时间差,返回time2 time1的时间差。
SELECT TIMESTAMPDIFF(DAY, '2023-12-12', '2023-11-11'); -结果为31
表格示例:常用日期函数及其用途
函数名称 | 用途描述 |
NOW() | 返回当前的日期和时间。 |
CURDATE() | 返回当前日期。 |
CURTIME() | 返回当前时间。 |
CURRENT_TIMESTAMP() | 返回当前的日期和时间,类似于NOW()。 |
SYSDATE() | 返回服务器的当前日期和时间,与NOW()类似,但值在函数执行时动态获得。 |
ADDDATE(date, INTERVAL value unit) | 给日期加上指定的时间间隔。 |
ADDTIME(time, INTERVAL value unit) | 给时间加上指定的时间间隔。 |
DATE_ADD(date, INTERVAL value unit) | 计算起始日期加上一个时间段后的日期。 |
SUBDATE(date, INTERVAL value unit) | 日期减去指定的时间间隔。 |
DATE_FORMAT(date, format) | 按指定格式显示日期。 |
STR_TO_DATE(str, format) | 将字符串转换为日期。 |
TIME_FORMAT(time, format) | 按指定格式显示时间。 |
YEAR(date) | 提取年份。 |
MONTH(date) | 提取月份。 |
DAY(date) | 提取天数。 |
WEEKDAY(date) | 返回星期几(0表示星期一,6表示星期日)。 |
DAYOFMONTH(date) | 计算日期是本月的第几天。 |
DAYOFWEEK(date) | 返回日期是星期几(1表示星期日,7表示星期六)。 |
DAYOFYEAR(date) | 计算日期是本年的第几天。 |
HOUR(time) | 返回小时值。 |
MINUTE(time) | 返回分钟值。 |
SECOND(time) | 返回秒数。 |
DATEDIFF(date1, date2) | 计算两个日期之间的天数差。 |
TIMEDIFF(time1, time2) | 计算两个时间之间的差值。 |
TIMESTAMPDIFF(unit, time1, time2) | 计算时间差,返回time2 time1的时间差。 |
常见问题解答(FAQs)
Q1:如何使用MySQL中的日期函数来计算两个日期之间的天数差?
A:可以使用DATEDIFF
函数来计算两个日期之间的天数差。
SELECT DATEDIFF('2023-12-12', '2023-11-11'); -结果为31天
这个函数会返回两个日期间相差的天数,如果第一个日期晚于第二个日期,则结果为正数;反之则为负数。
Q2:如何在MySQL中格式化日期?
A:使用DATE_FORMAT
函数可以按指定格式显示日期。
SELECT DATE_FORMAT('2023-11-11', '%Y-%m-%d %r'); -结果为 "2023-11-11 11:11:11 AM"
DATE_FORMAT
函数的第一个参数是要格式化的日期,第二个参数是格式字符串,其中%Y
、%m
、%d
等分别代表年、月、日等。
Q3:如何将字符串转换为MySQL中的日期类型?
A:使用STR_TO_DATE
函数可以将字符串转换为日期。
SELECT STR_TO_DATE('August 10, 2017', '%M %d, %Y'); -结果为 "2017-08-10"
STR_TO_DATE
函数的第一个参数是要转换的字符串,第二个参数是格式字符串,用于定义字符串的格式。%M
表示月份的全称,%d
表示带前导零的天数,%Y
表示四位数的年份。
小编有话说
MySQL的日期函数在数据处理中扮演着至关重要的角色,从获取当前日期和时间到复杂的日期计算和格式化,这些函数提供了强大的功能来满足各种需求,掌握这些函数不仅能提高工作效率,还能使数据处理过程更加灵活和高效,希望本文能帮助大家更好地理解和应用MySQL的日期函数。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1387746.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复