sql >> Databasteknik >  >> RDS >> Sqlserver

Få en boolean från ett datum jämför i t-sql select

Inte direkt. Du måste använda CASE, CAST betyder att det tolkas som booleskt av klientkoden

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

En annan lösning där en eller noll rader förväntas:

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


  1. mySQL>> Normalisering av ett kommaavgränsat fält

  2. MySQL-prestanda - IN-klausul kontra lika med (=) för ett enskilt värde

  3. Felkod:1062. Dubblettpost '1' för nyckel 'PRIMÄR'

  4. Lägger till HTML-tagg i titeln på trädfrågan i Oracle APEX