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()