gpt4 book ai didi

MySQL 性能 DATE_FORMAT() 与 YEAR() 和 MONTH()

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:32 24 4
gpt4 key购买 nike

在查找当前月份和年份的时间戳时,哪个对性能更好?

SELECT *
FROM mytable
WHERE YEAR(CURRENT_TIMESTAMP) = YEAR(mytable.timestamp)
AND MONTH(CURRENT_TIMESTAMP) = MONTH(mytable.timestamp)

SELECT *
FROM mytable
WHERE DATE_FORMAT(CURRENT_TIMESTAMP,'%m-%Y') = DATE_FORMAT(mytable.timestamp,'%m-%Y')

最佳答案

为了更好的性能并能够在 mytable.timestamp 中使用索引,将当前日期截断为月份。

 SELECT DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-01')

这会创建一个常量值,您可以对其进行索引搜索。

然后就可以得到这个月的所有记录

SELECT *
FROM mytable
WHERE mytable.timestamp >= DATE_FORMAT(CURRENT_TIMESTAMP, '%Y-%m-01')

关于MySQL 性能 DATE_FORMAT() 与 YEAR() 和 MONTH(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37301593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com