📜  mysql 将时间戳转换为日期 - SQL (1)

📅  最后修改于: 2023-12-03 14:44:29.822000             🧑  作者: Mango

MySQL将时间戳转换为日期 - SQL

在MySQL中,通常情况下会使用时间戳来操作时间相关的数据。而有时候我们需要将时间戳转换成可读的日期格式,以便于数据展示或者分析。本文将介绍如何使用MySQL来将时间戳转换成日期格式。

通过FROM_UNIXTIME()函数转换

MySQL提供了FROM_UNIXTIME()函数来将Unix时间戳转换成可读的日期格式。该函数的语法如下:

FROM_UNIXTIME(unix_timestamp[,format])

其中,unix_timestamp表示Unix时间戳值,可以是数字或者数据库中的字段名。format是一个可选参数,用于指定日期格式,默认值为'%Y-%m-%d %H:%i:%s'

以下是一个将Unix时间戳转换成日期的示例:

SELECT FROM_UNIXTIME(1533747568);

-- 输出结果:2018-08-08 10:19:28
格式化日期

通过FROM_UNIXTIME()函数,我们可以将时间戳转换成默认的日期格式,也可以通过format参数来指定自定义的日期格式。以下是一些常用的日期格式化参数:

| 参数 | 说明 | | --- | --- | | %Y | 年份,4位 | | %y | 年份,2位 | | %m | 月份,数字形式 | | %b | 月份,英文缩写 | | %M | 月份,英文全称 | | %d | 日,数字形式 | | %j | 日,0填充的数字形式 | | %H | 小时,24小时制 | | %h | 小时,12小时制 | | %i | 分钟 | | %s | 秒 |

以下是一个将Unix时间戳按照指定格式转换成日期的示例:

SELECT FROM_UNIXTIME(1533747568,'%Y年%m月%d日 %H时%i分%s秒');

-- 输出结果:2018年08月08日 10时19分28秒
示例

以下示例演示如何使用MySQL将时间戳转换为日期:

-- 创建测试表格
CREATE TABLE `timestamp_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `timestamp` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 插入测试数据
INSERT INTO `timestamp_test`(`timestamp`) VALUES (1533747568),(1533750000);

-- 将时间戳转换为日期
SELECT id, FROM_UNIXTIME(timestamp,'%Y/%m/%d %H:%i:%s') as date FROM timestamp_test;

输出结果如下:

| id | date | | --- | --- | | 1 | 2018/08/08 10:19:28 | | 2 | 2018/08/08 11:00:00 |

总结

在MySQL中,通过FROM_UNIXTIME()函数,我们可以将Unix时间戳转换成可读的日期格式并进行格式化。这在大多数情况下都可以满足数据展示和分析的要求。