在 Mysql 查询中将时间戳字段转换为日期
本教程文章将向你展示如何在 MySQL 查询中将 timestamp
字段转换为日期字段。这演示了如何在正确查询数据时使用格式。
在 MySQL 中使用日期格式转换 Timestamp
TIMESTAMP
数据类型允许你注册日期和时间。它有 19 个固定字符,可以启用从 1970 年 1 月 1 日的第一秒到 2038 年 1 月 19 日的一系列日期,恰好是 3 小时 14 分 7 秒。
DATE_FORMAT
函数将允许你从表中获取字段并将其转换为 MySQL 查询中所需的格式。以下是操作
表中的值。这记录了工厂中任何操作事件的详细信息,例如停机。
| shutdown |
| ------------------- |
| 2021-12-31 09:45:07 |
以下是一个转换示例,它将采用列 shutdown
并将其从默认格式 YYYY-MM-DD HH:MM:SS
的 timestamp
转换为格式 DD-MM
的日期-YYYY`。
CREATETABLEoperations(userTEXTNOTNULL,shutdownTIMESTAMP);INSERTINTOoperationsVALUES('Mark','2021-12-31 09:45:07');SELECTDATE_FORMAT(operations.shutdown,'%d %m %Y')AS'Shutdown Date'FROMoperations
输出:
| Shutdown Date |
|:--------------|
| 31 12 2021 |
你还可以选择在最终日期格式中包含时间,方法是将%H
、%i
和%s
分别用于小时、分钟和秒值。
CREATETABLEoperations(userTEXTNOTNULL,shutdownTIMESTAMP);INSERTINTOoperationsVALUES('Mark','2021-12-31 09:45:07');SELECTDATE_FORMAT(operations.shutdown,'%d %m %Y %h%:%i%:%s')AS'Shutdown Date'FROMoperations
输出:
| Shutdown Date |
|:---------------------|
| 31 12 2021 09:45:07 |
%i
符号用于分钟,因为 %m
已分配给每月数值。
在 MySQL 中使用 Unixtime
转换时间戳
如果 timestamp
的格式正确,则日期/时间格式 31 12 2021 09:45:07
可能如下所示:1640943907
。你可以使用 FROM_UNIXTIME
将数字序列转换为日期/时间格式。
CREATETABLEoperations(userTEXTNOTNULL,shutdownint(11));INSERTINTOoperationsVALUES('Mark',1640943907);SELECTDATE_FORMAT(FROM_UNIXTIME(operations.shutdown),'%d %m %Y %h%:%i%:%s')AS'Shutdown Date'FROMoperations
结果:
| Shutdown Date |
|:---------------------|
| 31 12 2021 09:45:07 |
如上所示,时间戳被转换为相同的格式,只需添加 FROM_UNIXTIME
以将数字序列转换为所需的格式。
在 MySQL 中使用 Cast 转换 Unixtime
你还可以使用 CAST
代替 DATE_FORMAT
将 UNIXTIME
格式转换为日期。
CREATETABLEoperations(userTEXTNOTNULL,shutdownint(11));INSERTINTOoperationsVALUES('Mark',1640943907);SELECTCAST(FROM_UNIXTIME(operations.shutdown)ASDATE)AS'Shutdown Date'FROMoperations
输出:
| Shutdown Date |
|:--------------|
| 2021-12-31 |
但是,此方法限制了你根据需要设置日期格式的能力,这就是首选使用 DATE_FORMAT
的原因。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。