在 MySQL 中,将时间 / 日期类型转换为字符串可以使用 DATE_FORMAT() 函数,该函数允许你根据自定义格式将日期时间值转换为字符串。
基本语法
sql
DATE_FORMAT(date, format)
date:要转换的日期 / 时间字段或值(可以是 DATE、DATETIME、TIMESTAMP 类型)
format:指定转换后的字符串格式(使用格式化符)
常用格式化符
格式化符 说明 示例(对于 2023-10-05 14:30:45)
%Y 四位年份 2023
%y 两位年份 23
%m 两位月份(01-12) 10
%c 月份(1-12,无前导零) 10
%d 两位日期(01-31) 05
%e 日期(1-31,无前导零) 5
%H 24 小时制小时(00-23) 14
%h 12 小时制小时(01-12) 02
%i 两位分钟(00-59) 30
%s 两位秒数(00-59) 45
%W 星期全称 Thursday
%a 星期缩写 Thu
%M 月份全称 October
%b 月份缩写 Oct
示例用法
将 DATETIME 转换为字符串
sql
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS datetime_str;
-- 结果:2023-10-05 14:30:45
转换为中文日期格式
sql
SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H时%i分%s秒') AS chinese_datetime;
-- 结果:2023年10月05日 14时30分45秒
只保留日期部分
sql
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS date_str;
-- 结果:2023-10-05
只保留时间部分
sql
SELECT DATE_FORMAT(NOW(), '%H:%i:%s') AS time_str;
-- 结果:14:30:45
处理表中的日期字段
假设有表 orders,其中 create_time 是 DATETIME 类型:
sql
SELECT
order_id,
DATE_FORMAT(create_time, '%Y-%m-%d %H:%i') AS formatted_create_time
FROM orders;
注意事项
如果日期值为 NULL,DATE_FORMAT() 会返回 NULL
对于 TIMESTAMP 类型,转换方式与 DATETIME 相同
可以结合 CONCAT() 函数实现更复杂的字符串拼接
例如,添加自定义文本:
sql
SELECT CONCAT('订单创建于:', DATE_FORMAT(create_time, '%Y年%m月%d日')) AS order_info FROM orders;
以上就是关于mysql时间转字符串的介绍。还有一款非常便捷的MYSQL导出、导入备份工具也运用的很不错,“80KM-mysql备份工具”。 可定时备份、异地备份,MYSQL导出导入。可本地连接LINUX里的MYSQL,简单便捷。