【问题标题】:How do I select the date from the timestamp in MariaDB?如何从 MariaDB 的时间戳中选择日期?
【发布时间】:2023-02-25 07:06:29
【问题描述】:

我有其他几条记录中的这两条:

2023-02-02 18:25:56.000

2023-02-02 18:49:40.000

我只想从中选择年、月和日。

我只想查询他们,现在我有:

SELECT * FROM table1 WHERE `date` = '2023-02-02'; 

但它不会返回任何内容,因为我也需要包含时间戳。目标是选择具有该日期的记录,以便我可以显示它们。

【问题讨论】:

  • 其中日期 >= '2023-02-02' 且日期 < '2023-02-03'

标签: mysql mariadb


【解决方案1】:

使用 DATE 函数提取时间戳的日期部分:

SELECT *
FROM table1
WHERE DATE(`date`) = '2023-02-02'

请注意,如果您在 date 上有一个索引,如果您使用这种方法,它可能不会被使用。但是,除非您有数百万行,否则它应该仍然可以正常执行。

性能更好但更笨拙的方法是:

SELECT *
FROM table1
WHERE `date` BETWEEN '2023-02-02 00:00:00' AND '2023-02-02 23:59:59'

【讨论】:

  • 在 MySQL 8.0 中,它们最终支持表达式索引,因此您可以索引 DATE(date) 的结果,然后如果您在查询中使用相同的表达式,它会使用索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-02
  • 2019-04-29
  • 2011-11-16
  • 2021-10-31
  • 1970-01-01
  • 2013-06-26
相关资源
最近更新 更多