gpt4 book ai didi

sql - 对 SQL 语句中的特定行应用特定条件

转载 作者:行者123 更新时间:2023-11-29 09:14:53 24 4
gpt4 key购买 nike

我有一个包含以下列的表格

(名称:varchar),(mydate:DATE),(结束时间:TIME)

我尝试根据以下条件获取特定行:

  1. mydate 在一定范围内
  2. mydate > 日期(NOW())
  3. endTime > time(NOW()),这应该仅适用于“今天”日期行

问题出在 endTime 上。例如,考虑以下数据

  1. 苹果2011-02-01 21:00:00
  2. 橙子2011-03-02 10:00:00
  3. 葡萄 2011-05-10 11:00:00

如果查询的输入是

  1. 范围:2011年1月1日至2011年4月1日
  2. 日期(NOW()):2011-01-01
  3. 时间(NOW()):20:00:00

考虑查询

SELECT name FROM mytable
WHERE mydate BETWEEN '2011-01-01' AND '2011-04-01'
AND date >= DATE(NOW())
AND endTime > TIME(NOW())

查询结果只有“苹果”。但正确的结果是“苹果”和“橙子”。问题是条件:endTime > time(NOW()),这应该仅适用于“今天”日期行。

我不想联合,因为我原来的查询很大。有没有办法我们可以仅将条件应用于某些行。

任何想法都值得赞赏。谢谢。

最佳答案

用途:

SELECT name 
FROM mytable
WHERE mydate BETWEEN '2011-01-01' AND '2011-04-01'
AND ADDTIME(mydate, endtime) > NOW()

ADDTIME function将允许您将 DATE 和 TIME 值合并为一个 DATETIME,然后您可以将其用于 NOW()/CURRENT_TIMESTAMP。

坦白说,额外的标准是多余的......

关于sql - 对 SQL 语句中的特定行应用特定条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4467069/

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