我有一个字段,由于各种原因,需要接受各种日期/时间输入。虽然我可以使用DATETIME
类型来存储日期和日期时间,例如:
-
2014-01-01 00:00:00
(日期( -
2014-01-01 01:20:23
(日期时间(
我不知道如何存储时间。是否可能以任何方式,或者我需要存储某种用于在应用程序中解析的黑客值,例如:
-
0000-01-01 05:00:00
(解析为05:00:00
--> 时间(
或者,有没有更好的方法来存储它?
例如,我目前如何执行 sql,如下所示:
select if(vd=date(vd), date(vd),
if(date(vd)='0000-01-01', right(vd,8),
vd)) formatted_vd, vd from spread
formatted_vd vd
2014-01-01 2014-01-01 00:00:00
2014-01-01 01:12:23 2014-01-01 01:12:23
05:00:00 0000-01-01 05:00:00
虽然MySQL实际上确实有一个TIME类型,但大多数时候(没有双关语(,你不会想使用它。 相反,使用 DATETIME
通常是更好的选择。
话虽如此,如果您有一个DATETIME
值,并且出于某种原因您想隔离时间组件,MySQL 提供了一个可以自行提取时间的TIME()
函数。