SQL 日期函数如何格式化日期?

MySQL用DATE_FORMAT函数,如DATE_FORMAT(NOW(), '%Y-%m-%d');2. Oracle用TO_CHAR函数,如TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS');3. SQL Server可用CONVERT或FORMAT函数,如FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss')。

SQL 中格式化日期主要依赖数据库自带的日期函数,不同数据库语法略有差异。核心方法是使用内置函数将日期转换为指定格式的字符串。

使用 DATE_FORMAT 函数(MySQL)

MySQL 中常用 DATE_FORMAT() 函数来格式化日期。

  • %Y:4 位数年份(如 2025)
  • %m:两位数月份(01-12)
  • %d:两位数日期(01-31)
  • %H:24 小时制小时
  • %i:分钟
  • %s:秒

示例:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') AS formatted_date;
-- 输出:2025-05-16

使用 TO_CHAR 函数(Oracle)

Oracle 使用 TO_CHAR() 将日期转为字符串。

  • YYYY:四位年份
  • MM:两位月份
  • DD:两位日期
  • HH24:24 小时制
  • MI:分钟
  • SS:秒

示例:

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual;
-- 输出:2025-05-16 14:30:25

使用 CONVERT 或 FORMAT 函数(SQL Server)

SQL Server 可用 CONVERT() 或较新的 FORMAT()

CONVERT 示例:

SELECT CONVERT(VARCHAR, GETDATE(), 120) AS formatted_date;
-- 输出:2025-05-16 14:30:25

FORMAT 示例(更灵活):

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS formatted_date;
-- 输出自定义格式

基本上就这些。根据你使用的数据库选择对应函数即可。注意不同数据库支持的格式符和函数名称不同,别混用。