unix时间戳的字段类型

时间:2010-01-03 00:46:34

标签: sql

什么是用于unix时间戳的最佳字段类型?

int(10)会持续一段时间吗?

4 个答案:

答案 0 :(得分:73)

Unix time_t要么是32位宽,要么是64位。因此,int(8)binary(8)就足够了,至少在接下来的2930亿年内是这样。

答案 1 :(得分:15)

MySQL INT(n)数据类型中的数字未指定保留多少存储空间,它只是用于格式化的显示宽度。因此,INT(10)与普通INTEGER相同,也就是说32位有符号数。

因此,这肯定是32位Unix时间戳的适当数据类型。但是如果你想要64位时间戳,那就不够了;你必须使用BIGINT

答案 2 :(得分:4)

对于时间戳,您应该使用TIMESTAMPDATETIME字段类型。

答案 3 :(得分:4)

对于Unix时间戳,您可以轻松使用INT(4) UNSIGNED,其最大值为4294967295。您可以在接下来的〜133年内存储time()值。如果您的应用程序因此而停止工作,您将会长期死亡;)

您也可以尝试使用TIMESTAMP数据类型,这样做的问题较少,当您想将其转换为Unix时间戳时,您可以使用UNIX_TIMESTAMP()函数。

离。

SELECT UNIX_TIMESTAMP(col_timestamp) FROM tbl_name;