【发布时间】:2018-03-14 17:32:09
【问题描述】:
我在一个表中有一个列表,其中包含 StartDate (not null) 和 EndDate (null)(类型均为 date,没有时间)。
活动条目是具有StartDate <= querydate 和EndDate with null or > querydate 的条目。
所以我的查询基本上是这样的
SELECT *
FROM MyDataTable
WHERE StartDate <= mydate
AND (EndDate IS NULL OR EndDate >= mydate )
对于图表中的统计数据,我想知道在过去几个月的特定月份中哪些是活跃的。我在一年和一个月(2017-10、2017-11、2017-12、2018-1、...)中循环(以编程方式)
如何使用程序循环的年份和月份选择所有活动条目,但忽略日期部分?
【问题讨论】:
-
以后不要描述你的表和数据。显示表定义,提供示例数据,并给出输出示例。它使它更容易理解。
-
如果您以编程方式执行此操作,则可以从
myDate中提取月份和年份。因此,假设myDate有 10 个月和 2017 年,则将查询修改为SELECT * FROM MyDataTble Where Month(date)='10' && YEAR(date)='2017并进行比较。
标签: sql sql-server date select