MySQL如果Date语句?

时间:2012-02-07 15:29:57

标签: mysql date if-statement

有没有办法通过mysql查询返回true或false?

我有一张桌子:

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

如果当前日期大于开始日期,我想返回TRUE,如果不是,则返回FALSE。我知道我可以通过PHP进行比较,但我想知道我是否可以通过查询来做到这一点?

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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]

答案 2 :(得分:1)

select case now() > start_date 
         then true 
         else false
       end
from your_table

答案 3 :(得分:1)

当然你可以在MySQL查询中做到这一点。你可以在这样的地方做到这一点:

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

此查询将仅选择“更高”的行,然后选择“start_date”列(start_date必须为DATE类型)

答案 4 :(得分:0)

我知道这一点,但它返回日期本身而不是布尔值。

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