【发布时间】:2020-06-24 23:44:25
【问题描述】:
问题
将 unix 时间戳转换为日期时间,同时保留毫秒。
背景
我收到以下格式的 unix 时间戳:
- 1584049707
然后我尝试使用TO_TIMESTAMP() 通过 PHP 将其发送到 MySQL 中的 datetime(3) 列。我也尝试过FROM_UNIXTIME(),但结果相同。
SQL
$sql = "
INSERT INTO assoc_table (timestart, timeend)
VALUES (TO_TIMESTAMP(:timestart), TO_TIMESTAMP(:timeend))
";
结果
- 2020-03-12 22:42:23.000
由于某种原因,它没有记录毫秒数。
期望的结果
- 从 unix 时间戳中获取毫秒数并进入 datetime 列。
【问题讨论】:
-
但是您的纪元时间戳首先没有毫秒部分。
-
我正在使用 Math.round((new Date()).getTime() / 1000);从 JS 获取 unix 时间戳。会不会这么简单我需要去掉/1000?
-
TO_TIMESTAMP()来自哪里?我在任何 MySQL 文档中都没有看到这一点? -
另外,如果您的列是
DATETIME类型,它需要YYYY-MM-DD hh:mm:ss[.fraction]格式的值 -
为什么它会注册任何毫秒? 1584049707 不包含毫秒。
标签: php mysql sql date datetime