SQL - 查找与当前日期最近的日期
问题描述:
我遇到了一些SQL查询问题。 我得到这个表: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');
的问题是,我想选择谁拥有最接近当前日期的日期的personssn。我一直在使用“CURDATE()”,但似乎无法让它工作。任何人都可以帮助我朝正确的方向发展?
谢谢。
答
select *
from Table1
order by
abs(now() - date) desc
limit 1
+1
要责令升序(从现在最小的时间差)。如果你想接近即将到来的约会,我建议增加一个where子句来消除过去的日期(使用abs会使日期1天前订购的日期高于2天内的日期)。 – Heyflynn 2014-10-13 16:12:10
答
通过简单的命令试试这个:
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
但这是甲骨文..我不确定的MySQL文本。
答
使用datediff。这是两个日期之间的差异。
SELECT date,personssn FROM Table1 ORDER BY ABS(DATEDIFF(DATE, NOW())) LIMIT 5
限制1,绝对超值(ABS)和SYSDATE的时间差/ CURDATE – xQbert 2013-05-06 12:23:44