gpt4 book ai didi

php - Mysql 中的日期之间无法正常工作

转载 作者:行者123 更新时间:2023-12-01 00:03:39 26 4
gpt4 key购买 nike

我想使用 MySQL 根据两个不同的日期过滤一些项目。在我的数据库中,我存储了类似 2017-03-28 10:55:10 的数据。但我只需要日期部分,不需要时间,所以我使用了 DATE() 函数:

select sum(cashamount) as sumcashsalesamount,
DATE(transactiondate) as datepart
from master_transaction
where transactiondate BETWEEN '2017-02-22%' AND '2017-03-28%'
order by transactiondate desc

此查询上方有两个日期 2017-02-22%2017-03-28% 但这没有返回任何结果。

但是当我将此 2017-03-28% 日期更改为 2017-03-29%(明天日期)时,我得到了结果。

最佳答案

不要将 between 与“日期”一起使用。我将其放在引号中,因为您的值实际上是日期时间值。

这个条件最好的写法是:

where transactiondate >= '2017-02-22' and
transactiondate < '2017-03-29'

注意第二个条件的不等式。 BETWEEN 包含在内,因此它将包括 2017 年 3 月 28 日的午夜。

为什么这是最好的?

  • 它允许查询优化器利用索引和分区。
  • 这正是您想要的逻辑。
  • 它适用于 datedatetime 类型。

关于php - Mysql 中的日期之间无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43067424/

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