繁体   English   中英

从 t-sql select 中的日期比较中获取布尔值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM