您的位置:

MySQL中日期格式化详解

MySQL中日期格式化是非常常见的操作,可以通过各种方式来控制输出的日期格式。本文将从多个方面对MySQL中日期格式化做出详细的阐述。

一、日期格式化基础

在MySQL中,日期格式化是通过 DATE_FORMAT 函数来实现的。具体用法如下:

SELECT DATE_FORMAT(date, format)
FROM table_name;

其中 date 是要格式化的日期,format 是日期格式。下面是几种常见的日期格式:

  • %Y:四位数的年份
  • %y:两位数的年份
  • %m:月份,01-12
  • %c:月份,1-12
  • %d:月中的天数,01-31
  • %e:月中的天数,1-31
  • %H:小时,00-23
  • %h:小时,01-12
  • %i:分钟,00-59
  • %s:秒钟,00-59
  • %%:百分号

例如,以下查询将返回类似于“2022-08-15”的日期格式:

SELECT DATE_FORMAT('2022-08-15', '%Y-%m-%d');

二、日期格式化高级技巧

1. 将日期格式化成中文

将日期格式化成中文是非常常见的需求。可以使用 MySQL 中的 FORMAT 函数来实现:

SELECT CONCAT(YEAR(date),'年',MONTH(date),'月',DAY(date),'日') AS cn_date
FROM table_name;

2. 获取当前时间

获取当前时间可以使用 MySQL 自带的函数 NOW(),以及 CURRENT_TIMESTAMP 和 SYSDATE 等函数。

不同的日期格式可以通过 DATE_FORMAT 函数来实现,例如:

SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s');

3. 将日期转换为时间戳

时间戳是表示日期和时间的数字,通常是从1970年1月1日 00:00:00 UTC开始经过的秒数。将 DATE 类型的日期转换为时间戳可以使用 UNIX_TIMESTAMP 函数,例如:

SELECT UNIX_TIMESTAMP(date) AS timestamp
FROM table_name;

4. 将日期格式化为日历

将日期格式化为日历是一种非常有用的方式来显示日期。可以使用 MySQL 中的 GROUP_CONCAT 函数和 CONCAT 函数以及 IF 函数来实现:

SELECT DATE_FORMAT(date, '%Y-%m-%d') AS date,
       GROUP_CONCAT(IF(DAYOFMONTH(date) = sub, CONCAT('', DAYOFMONTH(date), ''), DAYOFMONTH(date)))
FROM table_name, (SELECT @i:=5) vars, (SELECT @sub:=DAYOFMONTH(NOW())) vars2
WHERE MONTH(date) = MONTH(NOW())
GROUP BY WEEK(date)
ORDER BY date;

5. 计算日期差

计算日期差可以使用 MySQL 中的 DATEDIFF 函数,例如:

SELECT DATEDIFF('2022-08-15', '2022-08-01') AS diff;

上述查询将返回日期差为 14 天。

三、日期格式化实例

1. 将日期格式化为美国日期格式

以下代码将查询结果格式化为美国日期格式:

SELECT DATE_FORMAT(date, '%m/%d/%Y') AS american_date
FROM table_name;

2. 将日期格式化为英国日期格式

以下代码将查询结果格式化为英国日期格式:

SELECT DATE_FORMAT(date, '%d/%m/%Y') AS english_date
FROM table_name;

3. 将时间格式化为 24 小时制

以下代码将查询结果格式化为 24 小时制时间格式:

SELECT DATE_FORMAT(date, '%H:%i:%s') AS time_24
FROM table_name;

4. 将时间格式化为 12 小时制

以下代码将查询结果格式化为 12 小时制时间格式:

SELECT DATE_FORMAT(date, '%h:%i:%s %p') AS time_12
FROM table_name;

5. 在查询结果中添加星期几

以下代码将查询结果中添加星期几:

SELECT CONCAT(DATE_FORMAT(date, '%Y-%m-%d'), ' ', DAYNAME(date)) AS date_with_day
FROM table_name;

四、总结

本文对 MySQL 中日期格式化进行了详细的阐述。通过 DATE_FORMAT 函数和各种日期格式,可以非常方便地将日期格式化为各种形式,从而满足不同的需求。同时,本文还介绍了一些常见的日期格式化技巧,希望对读者有所帮助。