如何仅选择从今天开始计算的未来日期?

时间:2016-05-11 16:48:43

标签: php mysql date select

我需要一个只显示未来日期的功能。

问题是这样的"选择从今天开始预约高级日期的患者。"

我现在的选择代码是:

select Patients_code
     , max(Date) 
  from Patients
     , GPS 
 group 
    by Patients_code 
having max(Date) > '2016-05-11';

GPS是预定的时间,日期是。 此外,有些预订仍在2016年,但在一个月后,我得到的答案只有2017年的日期。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果您使用PHP,则可能需要像这样构建SQL:

    <?php
    //ADD AN END DATE TO SPECIFY A RANGE BETWEEN TODAY & THE ENDING DATE    
    $endDateRange   = "2016-09-30";

    $sql =<<<SQL
    SELECT Patients_code, max(Date) 
    FROM Patients, GPS 
    WHERE (Date >= CURDATE() && Date =< '{$endDateRange}')
    GROUP BY Patients_code 
SQL;

假设您的结束日期 2016-09-30 ,这可能会归结为:

    SELECT Patients_code, max(Date) 
    FROM Patients, GPS 
    WHERE (Date >= CURDATE() && Date =< '2016-09-30')
    GROUP BY Patients_code 

这是另一种风味......所有这些都在说同样的事情:

<?php
    //DECLARE A VARIABLE TO HOLD NR. OF DAYS INTO THE FUTURE:
    $daysFromNow   = "120";     //120 DAYS INTO THE FUTURE - APPROX. 4 MONTHS FROM NOW.
    $sql =<<<SQL
    SELECT Patients_code, max(Date)
    FROM Patients, GPS
    WHERE ( DATEDIFF(MAX(Date), CURRENT_DATE()) < {$daysFromNow})
    GROUP BY Patients_code
SQL; 

其他也暗示(假设范围未来120天):

    SELECT Patients_code, max(Date)
    FROM Patients, GPS
    WHERE ( DATEDIFF(MAX(Date), CURRENT_DATE()) < 120)
    GROUP BY Patients_code

@kamal pal指出你可能不需要拥有条款。现在,我不会假装知道你想做什么,但我认为他可能已经提出了一个很好的观点......虽然这一切都取决于你和你的意图究竟是什么。这部分由你决定......; - )

答案 1 :(得分:0)

我明白了!谢谢大家的帮助,这非常有帮助!

我必须做的事情:

select GPS.PK, Date, Name, Lastname from Patients, GPS where Date>NOW() and PatientsID=GPS.PK and PatientsID=645;