Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Получаване на булева стойност от сравнение на дата в t-sql select

Не директно. Трябва да използвате CASE, CAST означава, че се интерпретира като булево от клиентския код

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

Друго решение, при което се очакват един или нула редове:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:Направете всички главни букви в правилен регистър/заглавие

  2. Множество условия в клаузата WHERE

  3. SELECT заявка с условие CASE и SUM()

  4. Какъв е правилният синтаксис за използване на Database.ExecuteSqlCommand с параметри?

  5. Добавяне на множество параметризирани променливи към база данни в C#