【问题标题】:What should i use to save date and time [duplicate]我应该用什么来保存日期和时间[重复]
【发布时间】:2013-12-14 17:09:24
【问题描述】:

对于我的新数据库,我想使用 mysqli 将给定的日期、时间和年份从 php 保存到我的数据库中,在 sql 中我可以创建一个字段:

DATE

DATETIME

TIMESTAMP

TIME

YEAR

我只使用php的数据库,我应该选择什么类型?以及出于什么原因。

我认为日期时间和时间戳是最好的选择。但找不到任何理由为什么 1 应该比另一个更好。有人可以帮我选吗?

还是分开保存日期时间和年份更好?

我想进行查询以获取上周等的值。

【问题讨论】:

  • 取决于你要使用什么。如果您要存储日期,请不要使用TIMESTAMP。如果您要存储时间戳,请不要使用DATE。如果您不需要时间,请不要使用DATETIME
  • 当我只需要在记录插入中存储 now() 时间时,我个人将 datetime 用于用户指定/可变日期和时间戳,并在插入时启用存储当前。尽管我个人发现日期时间/时间戳更容易处理,但它们都非常重要
  • 我想存储一个事件的日期时间和年份。
  • 表中的第一个时间戳字段将在您修改记录时自动更新。也许这就是您想要的,但是如果您要存储(例如)人力资源记录,您不希望某人的生日总是“现在”。

标签: php sql


【解决方案1】:

对于我的新数据库,我想将给定的日期、时间和年份从 php 保存到我的数据库中

所以,将其存储为DATETIME。它包括年份。

以下是查看这些类型的方法:

  • DATE:用于日期(带年份),例如生日(“2010-11-23”)

  • TIME:用于一天中的某个时间,例如午餐开始时(“12:00”)

  • DATETIME:用于特定的日期和时间,例如会议开始(“2010-11-23 12:00”)

  • TIMESTAMP:用于发生特定事情的时间,例如创建某个会议的时间(“1385653500”;这通常在其定义中包含时区信息)

  • YEAR:用于存储年份,例如战争的开始年份(“1653”)

请注意,您始终可以将“较大”类型转换为“较小”类型。例如。您可以将DATE 转换为YEAR

【讨论】:

  • 时间戳包括正确的年份?
  • @SvenB 是的,它可以从它的定义中计算出来(那里存在许多时间戳),我在答案中为每个时间戳添加了一些示例。
  • 只是一个注释TIMESTAMP 也可以存储日期即时日期格式即yyyy-mm-dd hh:ii:ss 它不必将其存储为纪元时间戳
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 2012-05-18
  • 2018-07-11
  • 2012-10-23
相关资源
最近更新 更多