2009-12-13 58 views
3

我想知道如果沿着以下線的東西,可以在MS-SQL(2005)獲取從日期的布爾比較在T-SQL選擇

SELECT(到期< GETDATE())爲過期 FROM MyTable WHERE(ID = 1)

我基本上想要評估比較布爾值的日期,是否可以在語句的選擇部分?

回答

8

不是直接。你必須使用的情況下,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() 
0
SELECT CASE WHEN expiry < getdate() THEN 'true' ELSE 'false' END AS Expired FROM MyTable WHERE (ID = 1)