Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abrufen eines booleschen Werts aus einem Datumsvergleich in t-sql select

Nicht direkt. Sie müssen CASE verwenden, CAST bedeutet, dass es vom Client-Code als boolesch interpretiert wird

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

Eine andere Lösung, bei der eine oder keine Zeile erwartet wird:

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