Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Obtendo um booleano de uma comparação de data no t-sql select


Não diretamente. Você tem que usar CASE, o CAST significa que é interpretado como booleano pelo código do cliente
SELECT
    CAST(CASE WHEN expiry < getdate() THEN 1 ELSE 0 END AS bit) AS Expired
FROM
    MyTable WHERE (ID = 1)

Outra solução em que uma ou zero linhas são esperadas:
SELECT
    CAST(COUNT(*) AS bit) AS Expired   
FROM
    MyTable
WHERE
    ID = 1 AND expiry < getdate()