ahm*_*md0 3 sql sql-server select date
比如说,如果我需要从数据库中选择日期字段在特定时间范围内的记录。选择查询将是这样的:
SELECT * FROM [MyTable] WHERE [Date] >= @RangeBegin AND [Date] <= @RangeEnd;
Run Code Online (Sandbox Code Playgroud)
但是当日期字段可能为空或无效时,我有一个小条件。在这种情况下,日期值应该取自 @DefaultDate。
您如何将所有这些放入 SQL 中?
由于您说日期可能无效,因此我假设您已将日期存储为 varchar。您可以使用isdate来检查日期是否有效。
select case isdate([Date])
when 1 then cast([Date] as datetime)
else @DefaultDate
end as [Date]
from MyTable
where case isdate([Date])
when 1 then cast([Date] as datetime)
else @DefaultDate
end between @RangeBegin and @RangeEnd
Run Code Online (Sandbox Code Playgroud)