0

我需要一个可以及时存储特定日期的 MySQL 列。我正在使用的应用程序给了我一个 UNIX 时间戳(自 1970 年 1 月 1 日以来经过的秒数)。我需要将此信息存储在数据库中,稍后以特定方式检索它,见下文。

存储此日期后,我需要能够根据此时间戳查询数据库。例如,我需要能够检索时间戳日期为 4 日的所有行。

那么我的问题是如何将此日期存储在最容易执行查询的位置?DATETIME 和 TIMESTAMP 对我来说似乎是有效的选项,但我似乎无法弄清楚如何处理查询。我不期待将时间戳存储为整数,因为它不允许我创建这样的查询,我必须将这项工作卸载到 PHP。

如果有帮助,我需要以 UTC 时间处理这些时间戳。我知道 TIMESTAMP 会为我转换为 PST(我的本地时间),所以我必须在 MySQL 或 PHP 中转换回 UTC。(至少我认为我必须这样做)

请帮忙!

4

2 回答 2

1

如果我是你,我会将这些数据保存为DateTime. 原因是

  • 我们可以亲眼阅读这些记录。例如2013-01-04 00:25:12优于1357259112.
  • 不必使用我认为会杀死索引的任何转换函数FROM_UNIXTIME。所以最好使用dateor因为您可以使用索引,因为您可以使用ordatetime直接搜索值=BETWEEN
于 2013-01-04T00:31:08.970 回答
0

将其存储为integer,然后使用 MySQL 的FROM_UNIXTIME()函数如下:

SELECT
    `field_list`
FROM
    `table_name`
WHERE
    FROM_UNIXTIME(`the_date`, '%d') = 4;
于 2013-01-04T00:21:53.540 回答