小编典典

从日期中获取布尔值在T-SQL select中进行比较

sql

我想知道在ms-sql(2005)中是否可能遵循以下内容

SELECT (expiry < getdate()) AS Expired
FROM MyTable
WHERE (ID = 1)

我基本上想评估与布尔值比较的日期,这是否可以在语句的选择部分中进行?


阅读 165

收藏
2021-04-28

共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()
2021-04-28