我想知道在 ms-sql (2005) 中是否可以实现以下内容
SELECT (expiry < getdate()) AS Expired
FROM MyTable
WHERE (ID = 1)
我基本上想将日期与 bool 值进行比较,这可能在语句的选择部分吗?
最佳答案
不直接。您必须使用 CASE,CAST 意味着它被客户端代码解释为 bool 值
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()
关于sql - 从 t-sql select 中的日期比较中获取 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896828/