我有一个日志记录表,出于统计原因,该表将包含数百万的写入。所有列都是int外键。我还将为每一行添加一个时间戳列。鉴于DATETIME占用8位-我将int(10) unsigned
用来将存储空间(和该列的索引)减少一半。
但是,我想知道此列何时不再起作用。在2038年1月19日凌晨3:14:07,对于UNIX时间戳,值9,999,999,999将是一个问题-
但是MySQL中的unsigned int仅可容纳4,294,967,295,时间戳4294967295在我的PHP应用程序中显示了无效的数字。
那么这是什么意思? 由于无法一直到9999999999,MySQL中存储int时间戳的结尾是否会在2021年某个时候结束?
回答:
unsigned
不需要,因为2147483647非常适合已签名的MySQL int。标准UNIX时间戳是带符号的32位整数,在MySQL中是常规的“ int”列。您无法存储9,999,999,999,因为这超出了表示范围-
任何类型的32位int最高可以达到4,294,967,295。签名的最高32位为2,147,483,647。
如果/当UNIX时间戳记变为64位数据类型时,则必须使用MySQL“ bigint”来存储它们。
至于int(10)
,该(10)
部分仅用于显示目的。MySQL仍将在内部使用完整的32位存储数字,但是只要您在表上进行选择,则仅显示10。
我已经看过stackoverflow了,甚至看过一些建议的问题,但似乎没有一个答案,如何在C#中获得unix时间戳?
我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。
我试图在包含微秒级时间戳的cassandra中存储数据。cassandra的文档称“时间戳”数据类型可以存储纪元以来的毫秒,但互联网上的几条消息似乎暗示cassandra可以本地存储微秒时间戳。 在卡桑德拉中存储微秒级时间的最佳方法是什么?我是不是应该省略日期部分,存储很长一段呢? 正在中止记录#1的导入。以前插入的记录仍然存在,之后的一些记录也可能存在。 我的cassandra版本:[cqlsh
问题内容: 我正在寻找将UTC时间字符串转换为Unix时间戳的选项。 我拥有的字符串变量是,需要将其转换为unix时间戳,例如 任何想法如何做到这一点? 问题答案: 首先,unix时间戳没有时间,但以UTC为单位。 在包有功能解析与预计解析时的布局。布局是从参考时间开始构造的。因此,在您的情况下,布局应为。使用Parse之后,您将获得一个可以调用Unix来接收Unix时间戳的结构。
问题内容: 我正在尝试解析Unix时间戳,但超出范围错误。这对我来说真的没有意义,因为布局正确(如Go文档中所示): play 问题答案: 该函数不执行Unix时间戳。相反,您可以使用来解析字符串,并使用创建时间戳: 输出: play: http : //play.golang.org/p/v_j6UIro7a 编辑: 从更改为,以避免32位系统上的int溢出。
问题内容: 我现在想在时间戳上添加24小时。如何找到24小时的Unix时间戳号,以便现在可以将其添加到时间戳中? 我还想知道如何将48小时或多天添加到当前时间戳。 我如何才能最好地做到这一点? 问题答案: 您可能需要增加一天而不是24小时。由于夏令时(在其他情况下),并非整天都有24小时: