哪个是在MySQL中存储日期和时间的更好方法?

时间:2010-12-30 13:17:20

标签: php mysql

我想在数据库中以下列格式存储日期和时间

a)DD-MM-YYYY或者我可以加起来HH-MM b)由于我的服务器位于美国,我想根据IST获取时间。现在这将是GMT:+5:30

早些时候我曾经用这种格式的时间戳(int(11))将日期存储在mysql中:1291746600。我曾经用strtotime()转换日期; 目前我存储日期的目的只是存储和显示。将来我想计算一下。几天,几个月等。

哪种解决方案最好?

P:S:如果有人能解释我使用哪种数据类型以及如何在PHP中使用它,我将不胜感激。

3 个答案:

答案 0 :(得分:10)

使用DATETIME fields!它们是在mySQL中存储日期的最佳格式。它们提供了正确的索引和优化,您可以使用mySQL的全部date functions

输出字段所需的任何特定格式,您可以使用DATE_FORMAT().

从DATETIME字段创建

MySQL在DATETIME字段中不支持时区 - 您通常会在服务器上设置global time zone并使用它。

在这些问题中,有关时区的相关阅读材料很好:

答案 1 :(得分:3)

使用日期时间字段。

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

您可以访问许多日期操作功能。

如果您仍想使用varchar,请使用ISO-TIME格式(YYYY-MM-DD)而不是美国。

答案 2 :(得分:3)

我认为您应该使用DATETIME数据类型。 有关日期和时间的更多操作,请查看此处列出的功能 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html