gpt4 book ai didi

mysql - 如何将 MySQL 中的毫秒数与给定日期进行比较

转载 作者:行者123 更新时间:2023-11-29 01:23:41 31 4
gpt4 key购买 nike

使用

mysql  Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i686) using readline 5.0

我有一个这样定义的表:

+-----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+--------------+------+-----+---------+-------+
| id | bigint(20) | NO | PRI | | |
| user_id | bigint(20) | NO | MUL | | |
| directory_id | bigint(20) | NO | MUL | | |
| attribute_name | varchar(255) | NO | | | |
| attribute_value | varchar(255) | YES | | NULL | |
| attribute_lower_value | varchar(255) | YES | | NULL | |
+-----------------------+--------------+------+-----+---------+-------+

为我最后一次验证的时间选择 attribute_value 返回

+-------------------+-----------------+
| attribute_name | attribute_value |
+-------------------+-----------------+
| lastAuthenticated | 1330380013284 |
+-------------------+-----------------+

如果我使用 http://www.epochconverter.com/ 验证该值它说

Assuming that this timestamp is in milliseconds:
GMT: Mon, 27 Feb 2012 22:00:13 GMT

但是如果我尝试下面的代码行

mysql> select from_unixtime('1330380013284');
+--------------------------------+
| from_unixtime('1330380013284') |
+--------------------------------+
| NULL |
+--------------------------------+

有谁能立即知道我在这里缺少什么?

最佳答案

您需要除以 1000 并删除引号,否则您的日期会偏离

SELECT FROM_UNIXTIME(theField/1000);

SELECT FROM_UNIXTIME(1330380013284/1000);

请参阅文档 - 注意 MySQL 方法返回 SECONDS,而不是像您使用的那样返回毫秒:

MySQL docs for UNIX_TIMESTAMP

If called with no argument, returns a Unix timestamp 
(SECONDS since '1970-01-01 00:00:00' UTC) as an unsigned integer

关于mysql - 如何将 MySQL 中的毫秒数与给定日期进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9483205/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com