检查日期是否在给定时间段内有效

时间:2017-01-12 13:29:20

标签: sql sql-server datetime

我有一个名为“会员

的表格

列名为“ AffiliationDate (datetime,null)”2016-04-30 00:00:00.000

从属关系期间从(示例)开始运行: 2016年7月7日至2017年 - 06 - 30

现在我想查看会员 AffiliationDate 是否对此期间有效

我试图这样做没有成功,希望有一些提示方向。

提前致谢, 里克

2 个答案:

答案 0 :(得分:0)

使用 CASE 表达式检查AffiliationDate BETWEEN 日期范围。

<强>查询

SELECT *, 
CASE WHEN [AffiliationDate] BETWEEN '2016–07–01' AND '2016–07–30'
THEN 'Valid' ELSE 'Invalid' END AS [Status]
FROM [Members];

答案 1 :(得分:0)

试试这个:

DECLARE @StartDate DATETIME = (Define your start date)
DECLARE @EndDate DATETIME   = (Define your end date)

SELECT * 
FROM Members 
WHERE AffiliationDate BETWEEN @StartDate AND @EndDate

基本上,您不需要声明这两个变量。我在这里使用的方式应该使查询清楚。 Damien_The_Unbeliever提到的方法应该适合你。此外,您可以使用DATEADD()函数来复制开始日期和结束日期(有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms186819.aspx)。希望这会有所帮助。