sql >> Base de Datos >  >> RDS >> Sqlserver

Obtener un booleano de una comparación de fechas en t-sql select

No directamente. Tienes que usar CASE, CAST significa que el código del cliente lo interpreta como booleano

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

Otra solución donde se esperan una o cero filas:

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