在MySQL中,你可以使用DATE_FORMAT()
函数来格式化日期。DATE_FORMAT() 函数通常用于格式化 DATETIME 或 TIMESTAMP类型的字段。这个函数允许你按照指定的格式来显示日期和时间。下面是一些常见的日期格式化的例子:
-
显示年-月-日:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');
-
显示月/日/年:
SELECT DATE_FORMAT(NOW(), '%m/%d/%Y');
-
显示完整的日期和时间:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
-
显示小时和分钟:
SELECT DATE_FORMAT(NOW(), '%H:%i');
-
显示星期几:
SELECT DATE_FORMAT(NOW(), '%W'); -- 星期几(Sunday=0, ..., Saturday=6)
-
显示月份的名称:
SELECT DATE_FORMAT(NOW(), '%M'); -- 月份的名称(January, ..., December)
-
显示月份的缩写:
SELECT DATE_FORMAT(NOW(), '%b'); -- 月份的缩写(Jan, ..., Dec)
-
显示年份的最后两位数字:
SELECT DATE_FORMAT(NOW(), '%y');
-
显示AM或PM:
SELECT DATE_FORMAT(NOW(), '%p');
-
显示秒:
SELECT DATE_FORMAT(NOW(), '%s');
这些是DATE_FORMAT()
函数的一些基本用法。你可以根据需要组合不同的格式化选项来创建自定义的日期格式。
如果你尝试对一个非日期时间类型的字段使用 DATE_FORMAT(),比如 INT 或 VARCHAR,MySQL 会返回一个错误,因为它无法将这些类型的数据解释为日期或时间。
如果你有一个非日期时间类型的字段,但你知道它包含的是日期或时间信息,你可能需要先将其转换为 DATETIME 类型,然后再使用 DATE_FORMAT() 函数。例如,如果一个 VARCHAR 字段包含日期时间字符串,你可以使用 STR_TO_DATE() 函数将其转换:
SELECT DATE_FORMAT(STR_TO_DATE(your_varchar_column, '%Y-%m-%d %H:%i:%s'), '%Y-%m-%d %H:%i:%s');
这里,STR_TO_DATE() 函数将字符串转换为 DATETIME 类型,然后 DATE_FORMAT() 函数将其格式化为所需的格式。