Php 以下哪种情况检索格式化日期更快?

Php 以下哪种情况检索格式化日期更快?,php,mysql,datetime,date,Php,Mysql,Datetime,Date,我有一个DATETIME字符串,我只需要脚本中的日期就可以在数据库中执行一些搜索。目前,我脑海中有两个场景,但不知道哪一个更快 第一个场景: 在我的MYSQL数据库中,我有两列:datetime(这是一种datetime类型)和date(这是一种日期类型) 然后,在我的PHP脚本中,每次保存记录时,我都会将已知字符串插入datetime字段,然后将其转换为date字段(我想的是:$date=date(“Y-m-d”,strottime($datetime))) 这样,所有必需的片段都存储在我的数

我有一个DATETIME字符串,我只需要脚本中的日期就可以在数据库中执行一些搜索。目前,我脑海中有两个场景,但不知道哪一个更快

第一个场景:

在我的MYSQL数据库中,我有两列:
datetime
(这是一种datetime类型)和
date
(这是一种日期类型)

然后,在我的PHP脚本中,每次保存记录时,我都会将已知字符串插入
datetime
字段,然后将其转换为
date
字段(我想的是:
$date=date(“Y-m-d”,strottime($datetime))

这样,所有必需的片段都存储在我的数据库中,我可以动态地检索它们(包括
datetime
date
字段)

第二种情况:

MYSQL数据库应该只包含
datetime

我的PHP脚本将把已知字符串插入
datetime
字段,而无需任何其他修改

当我检索数据时,我会这样做:
选择datetime,DATE(datetime)FROM…

结论

以下哪种情况更快,因此应该使用?日期格式是保存还是检索?MYSQL在格式化日期方面比PHP快吗?最好将所有内容存储在数据库中并按原样检索,还是只在检索时存储最小值和格式?以下哪种情况是最佳实践


谢谢大家!

第二种方法是最好的,而且速度最快,因为您可以根据需求获得价值。而不是获得一些价值,然后再进行工作。

第二个是最好的,而且最快的,因为您可以根据需求获得价值。而不是获取一些价值,然后再进行处理。

这取决于您的用例:

如果您只需要阅读
日期
,然后使用单个
日期时间
列,那么从
日期时间
日期
的转换就足够便宜了

如果要在给定日期选择行(如
WHERE date='2011-08-01'
),则选择
date
列,因为这将允许mysql使用
date
列上的索引(如果已添加)


如果要选择日期范围内的行,请选择
datetime
列。您可以执行类似的操作,其中datetime>='2011-08-01'和datetime<'2011-08-16'

这取决于您的用例:

如果您只需要阅读
日期
,然后使用单个
日期时间
列,那么从
日期时间
日期
的转换就足够便宜了

如果要在给定日期选择行(如
WHERE date='2011-08-01'
),则选择
date
列,因为这将允许mysql使用
date
列上的索引(如果已添加)

如果要选择日期范围内的行,请选择
datetime
列。您可以执行类似以下操作:datetime>='2011-08-01'和datetime<'2011-08-16'

imho

  • datetime,甚至无符号整数(unix时间戳)更适合于范围筛选
  • datetime allow date time函数,对于聚合函数可能很有用
  • 避免来自mysql的格式化数据(即原始数据)
  • 任何与演示相关的内容都是PHP的职责
    • imho

      • datetime,甚至无符号整数(unix时间戳)更适合于范围筛选
      • datetime allow date time函数,对于聚合函数可能很有用
      • 避免来自mysql的格式化数据(即原始数据)
      • 任何与演示相关的内容都是PHP的职责

      这完全取决于你的情况——如果你的阅读(很多)多于写作,你可以将两者都存储起来。但是我会选择存储一个字段(datetime)并将其转换,无论是在PHP中还是在从MySQL检索它时(将datetime转换为您喜欢的格式)

      这完全取决于您的情况-如果您阅读(很多)多于写作,您可以同时存储这两个字段。但是我会存储一个字段(datetime)并将其转换,无论是在PHP中还是在从MySQL检索时(将datetime转换为您喜欢的格式的char)

      因此,您建议我的数据库中只有
      datetime
      列,并使用检索到的
      datetime
      在PHP中检索
      date
      ,所以,您建议我在数据库中只有
      datetime
      列,并使用检索到的
      datetime
      在PHP中检索
      date