我需要一个只显示未来日期的功能。
问题是这样的"选择从今天开始预约高级日期的患者。"
我现在的选择代码是:
select Patients_code
, max(Date)
from Patients
, GPS
group
by Patients_code
having max(Date) > '2016-05-11';
GPS是预定的时间,日期是。 此外,有些预订仍在2016年,但在一个月后,我得到的答案只有2017年的日期。
有什么建议吗?
答案 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;