【发布时间】:2021-03-30 18:11:32
【问题描述】:
我的数据库表中有一个单独的列用于一年和一个月,称为日志,我想检索两个日期之间的日志,如下所示:
因此,如果我说检索 01/01/2018 到上个月即 02/01/2021 之间的日志,那么它应该检索所有日志,但我没有得到以下查询的任何结果:
select COUNT(*)
from Logs
where ((LogYear >= YEAR('01/01/2018') and LogMonth >=Month('01/01/2018')) and (LogYear <=YEAR('02/01/2021') and LogMonth < =Month('02/01/2021')))
输出:0 条记录
当我运行此查询时,虽然我有全年的数据,但计数为 0。
这个查询有什么问题?
样本数据:
LogID LogYear LogMonth
1 2018 1
2 2018 2
3 2018 3
4 2018 4
我正在尝试从1-Jan-2018 to 1-February-2021 检索数据。
【问题讨论】:
-
@DaleK 我已将示例数据添加到我的问题中。很抱歉造成混乱
-
@DaleK 当然。我将创建一个 plunker。给我一些时间。
-
就目前而言,由于查询的编写方式,您的查询将仅考虑月份为 1 或 2 的行。您想要 2018 年到 2020 年间的所有行,并且只需要 2021 年的前 2 个月。您知道为什么您的查询现在不起作用了吗?
-
@DaleK 更新了问题以反映这一点
-
@SMor 是的,我明白了。感谢您指出了这一点。你能告诉我如何解决这个问题吗?
标签: sql sql-server tsql