php - SQL get nearest date record -
this sample data:
booking_id name start_date 1 abc 1/1/2018 2 efg 5/2/2018 3 pqr 16/1/2018 4 xyz 19/2/2018
i want in order nearest today date on top , past date in last
you need sort
desc
function on column start_date
. below query produce desired result.
select * table1 order start_date desc;
you can check sqlfiddle demo here
if dates in future, have use asc
desired result.
select * table1 order start_date asc;
if dates mix of past , future dates below sample data.
id name start_date --------------------- 1 abc 2018-01-01 2 efg 2018-02-05 3 pqr 2018-01-16 4 xyz 2018-02-19 1 abc 2017-01-01 2 efg 2017-02-05 3 pqr 2017-01-16 4 xyz 2017-02-19
below query can option show data in more friendly format.
select * ( select * table1 start_date < current_date order start_date desc ) b union select 0,'today_date', current_date union select * ( select * table1 start_date > current_date order start_date asc )
it sort past dates data in desc
order, add today
date result , add future data in asc
format below.
id name start_date -------------------------- 4 xyz 2017-02-19 2 efg 2017-02-05 3 pqr 2017-01-16 1 abc 2017-01-01 0 today_date 2017-08-18 1 abc 2018-01-01 3 pqr 2018-01-16 2 efg 2018-02-05 4 xyz 2018-02-19
check sqlfiddle demo here
Comments
Post a Comment