1

我有一个 SQL 表中的一行,一个字段是 DATE。(该值可能未定义,因为 DATE 没有默认值)。我如何判断这个日期(如果存在)是否还在未来?

我搜索了答案并找到了很多方法来提取通过此测试的所有记录,但我不想这样做。我只想检查这个先前提取的记录。抱歉新手问题!

$userQuery  = "SELECT * FROM  `passwords` WHERE `name` = '$name' LIMIT 1";
$userResult     = mysql_query($userQuery);    
$userRow        = mysql_fetch_assoc($userResult); 
$bestBeforeDate = $userRow['bestBeforeDate']; // field is in DATE format
// what now? How to find if the 'best Before Date' has passed?
4

1 回答 1

4

您可以在 SQL 中将其作为附加列进行

select case when (current_timestamp < date_column) 
            then 1
            else 0
            end as is_in_future
from your_table

编辑

您可以在一个查询中执行此操作,同时从表中读取其他值。
示例(不知道表的列名)

select id,
       date_column,
       other_column,
       case when (current_timestamp < date_column) 
            then 1
            else 0
       end as is_in_future
from your_table
where some_conditions

示例输出:

id  date_column   other_column   is_in_future
 1  2012-01-01    abc            0
 2  2012-08-01    def            1
 ...
于 2012-05-06T19:32:06.663 回答