MySQL数据库中的日期转换与日期时间函数说明
1. 日期格式转换
在MySQL中,日期和时间的格式转换可以通过以下几种方法实现:
STR_TO_DATE() 函数:将字符串转换为日期格式。
DATE_FORMAT() 函数:将日期转换为指定的字符串格式。
1.1 STR_TO_DATE()
SELECT STR_TO_DATE('20230401', '%Y%m%d') AS converted_date;
参数:第一个参数是要转换的字符串,第二个参数是日期的格式。
返回值:转换后的日期值。
1.2 DATE_FORMAT()
SELECT DATE_FORMAT(NOW(), '%Y%m%d %H:%i:%s') AS formatted_date;
参数:第一个参数是要格式化的日期值,第二个参数是日期的格式。
返回值:格式化后的日期字符串。
2. 日期时间函数
MySQL提供了丰富的日期时间函数,用于处理日期和时间的计算、格式化等。
2.1 常用日期时间函数
NOW():获取当前日期和时间。
“`sql
SELECT NOW();
“`
CURDATE():获取当前日期(不包含时间)。
“`sql
SELECT CURDATE();
“`
CURTIME():获取当前时间(不包含日期)。
“`sql
SELECT CURTIME();
“`
DATE_ADD():在日期上添加指定的时间间隔。
“`sql
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
“`
DATE_SUB():从日期减去指定的时间间隔。
“`sql
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
“`
DATEDIFF():计算两个日期之间的天数差。
“`sql
SELECT DATEDIFF(NOW(), ‘20230101’);
“`
DATE_FORMAT():格式化日期。
“`sql
SELECT DATE_FORMAT(NOW(), ‘%Y%m%d %H:%i:%s’);
“`
STR_TO_DATE():将字符串转换为日期。
“`sql
SELECT STR_TO_DATE(‘20230401’, ‘%Y%m%d’);
“`
3. 日期时间函数示例
以下是一些使用日期时间函数的示例:
获取当前日期和时间 SELECT NOW(); 获取当前日期(不包含时间) SELECT CURDATE(); 获取当前时间(不包含日期) SELECT CURTIME(); 在当前日期上添加1天 SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); 从当前日期减去1天 SELECT DATE_SUB(NOW(), INTERVAL 1 DAY); 计算从20230101到现在的天数差 SELECT DATEDIFF(NOW(), '20230101'); 将字符串'20230401'转换为日期 SELECT STR_TO_DATE('20230401', '%Y%m%d'); 格式化当前日期为'YYYYMMDD HH:MM:SS' SELECT DATE_FORMAT(NOW(), '%Y%m%d %H:%i:%s');
通过以上函数和示例,您可以更好地理解和应用MySQL中的日期时间处理功能。