gpt4 book ai didi

mysql - 如何在Mysql中以unix毫秒存储日期?

转载 作者:行者123 更新时间:2023-11-29 10:22:32 25 4
gpt4 key购买 nike

如何在 MYSQL 中以 UNIX 毫秒存储当前日期,例如日期:1388880000000?

现在我将其存储在日期时间中。

最佳答案

不要。 DateTime值应存储为 DateTime ,除非您有充分的理由以其他方式存储它们(例如支持 DateTime 的最小/最大值之外的日期和时间值),否则我建议将其保留在 DateTime 中柱子。

您始终可以在Select期间操纵从数据库返回它们的方式。或者在表示层中。从DateTime返回unix时间,MySql提供了一个内置方法,名为 UNIX_TIMESTAMP 。要返回毫秒数,只需乘以 1000,因为 unix 时间戳是自 1970 年 1 月 1 日以来的秒数(不包括闰秒)。如果你想存储unix时间,你必须使用int数据类型。

请注意,如果您确实存储 unix 时间而不是存储实际的 DateTime DateTime 中的值数据类型列,您将无法轻松使用数据库内置的所有日期时间函数。例如,如果您想找出特定月份有多少行,您首先必须将数据从 int 转换为 datetime,然后才能计算出来。

您还将失去准确性(因为即使在 1 秒分辨率下,unix 时间也是不准确的,因为它忽略了闰秒)。

因此,总结一下 - 当数据库为您提供适合该数据的数据类型时,不要使用不同的数据类型来存储该数据。使用 Date 如果您只想存储日期,则 DateTime 数据类型如果要存储日期时间值,则使用 Time 数据类型如果您想存储一天中的特定时间,请使用数据类型。

附注
处理日期时间值时,特别是如果您必须处理来自多个位置的客户端,请始终仅在数据库中存储 UTC 日期时间,unless, of course, you want to go mad.

关于mysql - 如何在Mysql中以unix毫秒存储日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973706/

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