2013-07-23 35 views
0

返回我有這個疑問:MySQL查詢誰0或1,根據日期

SELECT DATE_FORMAT(DATE_SUB(`expiry_date`, INTERVAL 7 DAY), '%d %m %Y') 
    FROM `my_subscriptions` 
WHERE `user_id` = '[user_id]'; 

返回expiry_date零下7天;我們稱之爲「返回日期」。現在

我想比較這「返回的日期」針對當前日期(時間現在),返回0如果當前日期小於或等於「返回的日期」,並1如果它是更大的。

我該怎麼做?

+0

除了DATE_FORMAT()之外,你還希望它作爲輸出列嗎? –

+0

是在查詢本身...而不是它...我必須精確我不是一個sql大師...我只是一點點的知識瞭解一下我做什麼,但沒有別的.. – dotcom22

+0

我接受幾個小時前的答案,我現在看到這個答案不再發布......爲什麼? – dotcom22

回答

1

您可以使用CASE並在當前日期時間使用NOW()。試試這個

SELECT CASE WHEN NOW() <= DATE_FORMAT(DATE_SUB(`expiry_date`, INTERVAL 7 DAY), '%Y-%m-%d') THEN 0 ELSE 1 END AS is_expired FROM `my_subscriptions` WHERE `user_id` = '[user_id]'; 
+0

我試過你的解決方案,但它總是返回1.我檢查了兩個用戶帳戶,他們的截止日期是20 07 2013和09 07 2014 ... – dotcom22

+0

你需要使用'YMD'格式作爲NOW()'將返回日期'YMD'格式見編輯答案 –