有啥办法可以缩短这个 SQL 查询
Posted
技术标签:
【中文标题】有啥办法可以缩短这个 SQL 查询【英文标题】:Is there any way to shorten this SQL Query有什么办法可以缩短这个 SQL 查询 【发布时间】:2021-08-20 17:25:58 【问题描述】:SELECT * FROM userfeedback WHERE
DATE LIKE '2020-07%' OR
DATE LIKE '2020-08%' OR
DATE LIKE '2020-09%' OR
DATE LIKE '2020-10%' OR
DATE LIKE '2020-11%' OR
DATE LIKE '2020-12%' OR
DATE LIKE '2021-01%' OR
DATE LIKE '2021-02%' OR
DATE LIKE '2021-03%' OR
DATE LIKE '2021-04%' OR
DATE LIKE '2021-05%' OR
DATE LIKE '2021-06%';
注意:这里 DATE 是一个列名,其类型为 Timestamp。
【问题讨论】:
DATE
列是存储为字符串还是正确的日期?您可以使用带有BETWEEN
的范围查询,如果您使用的是真实日期列。
【参考方案1】:
这是一种方法:
SELECT * FROM userfeedback
WHERE DATE between '2020-07-01' and '2021-06-30'
旁注:日期是关键字,最好不要用作对象名称(clumn name等)
【讨论】:
【参考方案2】:如果我理解正确,您希望检索 2020 年 7 月至 2021 年 6 月的所有数据。 由于您声明 DATE 数据类型是时间图,您可以执行以下操作:
SELECT *
FROM userfeedback
WHERE
DATE >= '2020-07-01' AND
DATE < '2021-07-01'
PS:我会避免使用 BETWEEN,因为在使用时间戳时会产生不希望的结果。
【讨论】:
以上是关于有啥办法可以缩短这个 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章