mysql之unix时间戳和正常时间格式之间的转换

FROM_UNIXTIME(1 2 3 4 5 6 7 8 9 0) 返回“2 009 -02 -1 3 2 3 :3 1 :3 0”。
UNIX_TIMESTAMP('2 02 3 -1 0-2 7 ') 返回 1 7 09 02 7 2 00。
CURRENT_DATE 返回“2 02 3 -1 0-2 7 ”。
直接使用即可。

MySQL时间格式处理 13位时间戳转日期格式的完整流程

mysql时间戳如何转换为日期格式?

上周,一位客户问我有关更改 MySQL 时间戳的问题,当时我为他编写了代码。
你说得对,FROM_UNIXTIME很简单,直接就可以搞定。
例如,我有一个名为 order_info 的表,并且有一个时间戳格式的 create_time 。
如果我想知道日期,只需写:
sql SELECT FROM_UNIXTIME(create_time) AS order_date 来自订单信息;
下单后结果一目了然。
这就是这个函数的作用,将秒转换回人类可读的格式。

但有时,客户端需要特定的格式,比如年、月、日,那么就需要添加DATE_FORMAT。
您提供的示例非常好:
sql SELECT DATE_FORMAT(FROM_UNIXTIME(create_time), '%Y-%m-%d') AS order_date 来自订单信息;
这样,时间戳就可以调整为2 02 3 -04 -2 0。
我上次用它为一家电子商务公司创建了一份报告。
他们想要每天统计订单数量并需要对其进行格式化。

哦,顺便说一句,你提到了毫秒时间戳,我以前经历过这个。
去年有一个项目,使用了Java后端,传递的时间戳是以毫秒为单位的。
直接使用FROM_UNIXTIME是错误的。
您需要先除以 1 000,如下所示:
sql SELECT FROM_UNIXTIME(create_time / 1 000) AS order_date 来自订单信息;
不然的话,距离发售日期还有几天,这简直是太过分了。
因此,如果您知道它是毫秒时间戳,则必须记住在处理之前将其转换为秒。

其实这个功能用多了就会变得更容易。
我有一个习惯,将时间戳相关的操作写成子查询,以避免层层嵌套和混乱。
像这样:
sql 选择( 选择 DATE_FORMAT(FROM_UNIXTIME(sub.create_time / 1 000), '%Y-%m-%d') FROM sub_order_info 子 其中 sub.id = main.id ) AS 订单日期 FROM main main_order_info;
虽然写起来比较长,但是读起来比较清晰。
但是,由您决定要做什么。
最重要的是按照你的意愿使用它。

MySQL日期格式转换 13位时间戳转YYYY-MM-DD的三种方案