MySQL 存储 13 位毫秒级时间戳:不丢失精度和丢失精度至秒的示例
在 MySQL 中,可以使用 BIGINT 来存储 13 位毫秒级时间戳。以下是两个例子:
- 不丢失精度的例子:
CREATE TABLE example1 (
timestamp_ms BIGINT(13) UNSIGNED
);
INSERT INTO example1 (timestamp_ms) VALUES (1612345678901);
在这个例子中,使用了 BIGINT(13) 来存储 13 位毫秒级时间戳,使用 UNSIGNED 来确保只存储正整数值。可以通过将 13 位毫秒级时间戳直接插入到表中来保持精度。
- 允许丢失精度至秒的例子:
CREATE TABLE example2 (
timestamp_sec DATETIME(0)
);
INSERT INTO example2 (timestamp_sec) VALUES (FROM_UNIXTIME(1612345678));
在这个例子中,使用了 DATETIME(0) 来存储时间戳的秒级精度。使用 FROM_UNIXTIME 函数将 13 位毫秒级时间戳转换为秒级精度,并将其插入到表中的 DATETIME 列中。这种方法会丢失毫秒级精度,但保留了秒级精度。
原文地址: https://www.cveoy.top/t/topic/qolL 著作权归作者所有。请勿转载和采集!