2012-02-07 17 views
1

mysqlクエリでtrueまたはfalseを返す方法はありますか?MySQLの場合Date文?

私はテーブルを持っている:それはない場合は、現在の日付が開始日とFALSEより大きい場合

id | start 
4 | 2012-03-01 00:00:00 
8 | 2012-01-20 00:00:00 

私はどちらかTRUE返すようにしたいと思います。私はPHPを介して比較を行うことができると知っていますが、私はクエリでそれを行うことができますか?

答えて

1
select case now() > start_date 
     then true 
     else false 
     end 
from your_table 
1
SELECT CASE WHEN CURDATE() > Start_Date THEN 1 ELSE 0 END [BitOutput], 
     CASE WHEN CURDATE() > Start_Date THEN true ELSE false END [BooleanOutput], 
     CASE WHEN CURDATE() > Start_Date THEN 'true' ELSE 'false' END [TextOutput] 
+0

'GETDATE()'ではないだけの行を選択します

SELECT * FROM your_table WHERE IF (CURDATE() > start_date, 1, 0) = 1; 

:そして、あなたはWHEREこのようにそれを行うことができますmysqlコマンドはそれですか? –

+0

修正 - GETDATEをCURDATEに変更しました。 – GarethD

2
SELECT IF(CURDATE() > `start`, TRUE, FALSE) as QueryResult 
FROM `tableName` 
0

私はこれを知っているが、それは、日付そのものとブール値を返しません。

SELECT GREATEST('2011-12-31 23:59:59', `2012-12-31 23:59:59`) AS great_date 
FROM your_table 
1

もちろん、あなたはMySQLのクエリでそれを行うことができます。このクエリは、「高い」その後、列「START_DATE」(START_DATEが、DATE型でなければなりません)

関連する問題