Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottenere un booleano da una data confronta in t-sql select

Non direttamente. Devi usare CASE, il CAST significa che è interpretato come booleano dal codice client

SELECT
    CAST(CASE WHEN expiry < getdate() THEN 1 ELSE 0 END AS bit) AS Expired
FROM
    MyTable WHERE (ID = 1)

Un'altra soluzione in cui sono previste una o zero righe:

SELECT
    CAST(COUNT(*) AS bit) AS Expired   
FROM
    MyTable
WHERE
    ID = 1 AND expiry < getdate()