[英]find the min date (Closest to current date) if dates lies in future date and max date (closest to current date) if dates lies in past dates in sql?
[英]SQL - Find date closest to current date
我的SQL查詢有問題。 我得到了這張桌子:
insert into Table1 (date, personssn)
insert ('2012-01-21 12:01:33', '123456789');
insert into Table1 (date, personssn)
insert ('2012-02-22 12:01:33', '123456789');
問題是我想選擇日期離當前日期最近的人員。 我一直在使用“ CURDATE()”,但似乎無法使其正常工作。 有人可以在正確的方向幫助我嗎?
謝謝。
select *
from Table1
order by
abs(now() - date) desc
limit 1
使用datediff。 這是兩個日期之間的返回差額。
SELECT date,personssn FROM Table1 ORDER BY ABS( DATEDIFF(DATE, NOW() ) ) LIMIT 5
通過以下簡單命令嘗試:
SELECT date,personssn FROM Table1 ORDER BY date desc
就像是:
with myCTE as (
SELECT to_date('21-Jan-2012 12:00') as mydate, '123456789' as myId FROM DUAL UNION
Select to_date('22-Feb-2012 12:00') as mydate, '123456789' FROM DUAL )
Select abs(sysdate-mydate) as diff, mydate, myID from myCTE order by diff
但這是oracle ..我不確定mysql文本。
使用MAX(date),如果您只希望輸出一行,否則請使用date <= sysdate,否則如何定義sysdate的衣櫥。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.