【问题标题】:How to store DATE/TIME/YEAR in MySQL DATETIME field?如何在 MySQL DATETIME 字段中存储 DATE/TIME/YEAR?
【发布时间】:2017-12-17 13:13:37
【问题描述】:

很抱歉,如果以前有人问过这个问题。我似乎找不到答案。

MySQL 有这些类型的日期/时间类型:

DATE:       0000-00-00
TIME:       00:00:00
DATETIME:   0000-00-00 00:00:00
TIMESTAMP:  0000-00-00 00:00:00
YEAR:       0000

我知道可以使用这些数据类型中的每一种来存储它们。

如何在 DATETIME 字段中仅存储 TIME(例如营业时间/关闭时间)、仅存储 YEAR(例如公司成立年份)和仅存储 DATE(例如出生日期)?谢谢。

PS:我正在使用 PHP,如果有帮助的话,虽然我正在寻找一个纯 MySQL 解决方案。

【问题讨论】:

    标签: mysql date datetime database-design time


    【解决方案1】:

    我认为您应该将所有这些存储为日期时间。营业时间可能因日期而异,您可能还需要公司成立的日期或月份。

    通过将所有内容存储为日期时间,您可能会保留额外的信息。但是总是可以很容易地检索到感兴趣的信息。例如,要获取公司成立的年份,您可以使用YEAR(date_founded),或者如果您感觉更成熟,您可以使用DATE_FORMAT('date_founded', '%Y')。

    【讨论】:

      【解决方案2】:

      您可以做的是存储时间戳,然后使用时间戳获取您想要从时间戳中检索的任何信息 根据您使用的语言,有一些可用的函数可以帮助您进行实施。 分享您使用的语言,以便我们更好地帮助您

      【讨论】:

      • 避免使用TIMESTAMP,因为它的范围有限。使用DATETIME 并始终存储UTC 时间(例如UTC_TIMESTAMP())。
      • 对不起,我的意思是说 UNIX 时间戳
      猜你喜欢
      • 2011-03-19
      • 2012-09-02
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      相关资源
      最近更新 更多