我需要一个可以存储特定日期的MySQL列。我正在使用的应用程序为我提供了一个UNIX时间戳(自1970年1月1日以来经过的秒数)。我需要将这些信息存储在数据库中,然后以特定的方式检索它,见下文。
在存储此日期之后,我需要能够根据此时间戳查询数据库。例如,我需要能够检索时间戳日为第4行的所有行。
那么我的问题是如何将这个日期存储在最容易执行查询的地方? DATETIME和TIMESTAMP对我来说似乎是有效的选项,但我似乎无法弄清楚如何处理查询。我不期待将时间戳存储为整数,因为它不允许我创建这样的查询,我不得不将该工作卸载到PHP。
如果有帮助我需要在UTC时间内处理这些时间戳。我知道TIMESTAMP将为我转换到PST(我当地时间),所以我必须在MySQL或PHP中转换回UTC。 (至少我认为我必须这样做)
请帮忙!
答案 0 :(得分:1)
如果我是你,我会将这些数据保存为DateTime
。原因是
2013-01-04 00:25:12
优于1357259112
。FROM_UNIXTIME
那样的任何转换函数,我认为它会杀死索引。因此,使用date
或datetime
要好得多,因为您可以使用索引,因为您可以使用=
或BETWEEN
答案 1 :(得分:0)
将其存储为integer
,然后使用MySQL的FROM_UNIXTIME()
函数,如下所示:
SELECT
`field_list`
FROM
`table_name`
WHERE
FROM_UNIXTIME(`the_date`, '%d') = 4;