[英]Getting a boolean from a date compare in t-sql select
我想知道在 ms-sql (2005) 中是否可以实现以下内容
SELECT (expiry < getdate()) AS Expired
FROM MyTable
WHERE (ID = 1)
我基本上想将日期与布尔值进行比较,这可能在语句的选择部分吗?
不直接。 您必须使用 CASE,CAST 意味着它被客户端代码解释为布尔值
SELECT
CAST(CASE WHEN expiry < getdate() THEN 1 ELSE 0 END AS bit) AS Expired
FROM
MyTable WHERE (ID = 1)
另一种需要一行或零行的解决方案:
SELECT
CAST(COUNT(*) AS bit) AS Expired
FROM
MyTable
WHERE
ID = 1 AND expiry < getdate()
SELECT CASE WHEN expiry < getdate() THEN 'true' ELSE 'false' END AS Expired FROM MyTable WHERE (ID = 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.