框架:ASP.NET 网络表单。
我有两个文本框,一个用于输入开始日期时间,另一个用于结束日期时间。我还有一个下拉列表,允许用户在"本地时间"和"UTC"之间进行选择。
场景是
-
如果用户在下拉列表中选择"本地时间",请在
[LocalTimeColumn]
列中检索@StartDateTime
和@EndDateTime
之间的结果 -
如果用户在下拉列表中选择"UTC",则在
[UTCColumn]
列中检索@StartDateTime
和@EndDateTime
之间的结果
我编写的 SQL 查询不起作用:
SELECT *
FROM [vmc]
WHERE
@DropDownList = CASE
WHEN @DropDownList = "Local Time"
THEN ([LocalTimeColumn] BETWEEN @StartDateTime AND @EndDateTime)
ELSE ([UTCColumn] BETWEEN @StartDateTime AND @EndDateTime)
END
CASE
表达式的谓词(即THEN
和ELSE
后面的内容(必须是标量值,而不是另一个逻辑表达式。 您可以通过稍微重构来使WHERE
子句执行您想要的操作:
SELECT *
FROM [vmc]
WHERE
(@DropDownList = "Local Time" AND
[LocalTimeColumn] BETWEEN @StartDateTime AND @EndDateTime) OR
[UTCColumn] BETWEEN @StartDate AND @EndDate;