Sql server “我该怎么做?”;“忽略”;1753年1月1日针对日期时间列查询少于90天时? 选择[Estimated Return Date]时的案例

Sql server “我该怎么做?”;“忽略”;1753年1月1日针对日期时间列查询少于90天时? 选择[Estimated Return Date]时的案例,sql-server,datetime,datediff,Sql Server,Datetime,Datediff,作为绷带,您可以这样做(最好在1753年使用NULL): 选择[预计退货日期]>“17530101”和 [预计返回日期]该WHERE条款的目的是什么,您的任何数据是否真的与1753年有关?此外,我认为1/1/1753在SQL Server中不是有效的日期文本。如果在[Estimated Return date]字段中未添加日期,则在SQL中默认为1/1/1753。该日期与今天的日期明显小于90,并在以下情况下返回真实参数:。当合同到期后90天或更短时间内,我在报告中使用此选项进行条件格式设置,以

作为绷带,您可以这样做(最好在1753年使用NULL):

<代码>选择[预计退货日期]>“17530101”和
[预计返回日期]该
WHERE
条款的目的是什么,您的任何数据是否真的与1753年有关?此外,我认为
1/1/1753
在SQL Server中不是有效的日期文本。如果在[Estimated Return date]字段中未添加日期,则在SQL中默认为1/1/1753。该日期与今天的日期明显小于90,并在以下情况下返回真实参数:。当合同到期后90天或更短时间内,我在报告中使用此选项进行条件格式设置,以红色显示合同编号。@CraigZirnheld:只需将
where X
条件移动到
case
子句中,即
case when。。。而不是X…
?还是我误解了你的问题?@GrantWinney Grant,这是为了查询距离未来日期不到90天的合同。你为什么不改为使用NULL。1753年1月1日为有效日期,且早于90天。你们可以通过将你们的表达式移动到病例陈述中来解决这个问题,但这就像绷带,而不是治疗。
select case when [Estimated Return Date] <= DATEDIFF(day, -90, GETDATE()) then 
'90 Days or Less To Estimated Return Date' else '' end as 'Alert', [No_]

from [Rental Header]
where [Estimated Return Date] != '1/1/1753'
select case when [Estimated Return Date] > '17530101' AND

       [Estimated Return Date] <= DATEDIFF(day, -90, GETDATE()) 
     then '90 Days or Less To Estimated Return Date' 
     else '' end as [Alert], [No_]
from [Rental Header];