MySQL - 将日期和时间保存为DATETIME,将日期和时间保存为String

时间:2016-06-06 17:10:33

标签: php mysql date datetime

我需要存储一个截止日期,包括日期和时间(例如2016-05-02 19:02)。我目前正在使用具有DATETIME作为数据类型的字段,但问题是它会自动将其保存为2016-05-02 19:02:00。

作为解决方案,我想将日期保存在字符串字段中。

所以我想知道我是否应该这样做?任何性能优势/劣势?

2 个答案:

答案 0 :(得分:1)

不要打击数据库。使用内置类型,除非你真的需要他们无法提供的东西(尽管我不太可能这样做)。 (并且我的意思是你应该使用TIME,DATE或类似的时间和日期。然后你可以进行计算而不必转换值等)

如果你不需要秒,那么就一直保持00。

您是否使用DATETIME,DATE& TIME或者TIMESTAMP取决于您,您如何使用数据。选择在当前情况下最有意义的替代方案。

答案 1 :(得分:1)

正如其他答案中所提到的,您应该尽可能使用内置数据类型。

在您的情况下,请坚持使用DATETIME,然后使用DATE_FORMAT函数将其转换为查询中所需的任何格式,如下所示:

mysql> SELECT * FROM `mytable`;
+----+---------------------+
| id | mydatetime          |
+----+---------------------+
|  1 | 2016-06-06 14:12:00 |
+----+---------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_FORMAT(`mydatetime`,'%b %d %Y %h:%i %p') AS `mydatetime` FROM `mytable`;
+----------------------+
| mydatetime           |
+----------------------+
| Jun 06 2016 02:12 PM |
+----------------------+
1 row in set (0.00 sec)

参考: http://www.w3schools.com/sql/func_date_format.asp