Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL If Date语句?_Mysql_Date_If Statement - Fatal编程技术网

MySQL If Date语句?

MySQL If Date语句?,mysql,date,if-statement,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进行比较,但我想知道是否可以通过查询进行比较?我知道这一点,但它返回的是日期本身,而不是布尔值 SELECT CASE WHEN CURDATE() > Start_Date THEN 1 ELS

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

我有一张桌子:

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

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

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

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]
SELECT GREATEST( '2011-12-31 23:59:59', `2012-12-31 23:59:59` ) AS great_date
FROM your_table  

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

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

当然,您可以在MySQL查询中执行此操作。你可以这样做:

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

此查询将只选择比“开始日期”列“高”的行(开始日期必须是日期类型)

当然,您可以在MySQL查询中执行此操作。你可以这样做:

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

此查询将只选择比“开始日期”列“更高”的行(开始日期必须是日期类型)

Correct-将GETDATE更改为CURDATE。Correct-将GETDATE更改为CURDATE。