Sql server “我该怎么做?”;“忽略”;1753年1月1日针对日期时间列查询少于90天时? 选择[Estimated Return Date]时的案例
作为绷带,您可以这样做(最好在1753年使用NULL): <代码>选择[预计退货日期]>“17530101”和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天或更短时间内,我在报告中使用此选项进行条件格式设置,以
[预计返回日期]该
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];