最接近的日期我有如下表MySQL的選擇從今天
date
-----------------------
1. 2017-01-02 20:59:00
2. 2017-01-04 10:00:00
3. 2017-01-04 11:00:00
4. 2017-01-09 17:20:00
Q1:假設今天是2017-01-03
,我怎麼能選擇上面的日期得到的2和3的結果呢?
Q2:假設今天是2017-01-05
,得到4的結果?
最接近的日期我有如下表MySQL的選擇從今天
date
-----------------------
1. 2017-01-02 20:59:00
2. 2017-01-04 10:00:00
3. 2017-01-04 11:00:00
4. 2017-01-09 17:20:00
Q1:假設今天是2017-01-03
,我怎麼能選擇上面的日期得到的2和3的結果呢?
Q2:假設今天是2017-01-05
,得到4的結果?
試試這個:
select `date`
from your_table
where date(`date`) = (select min(date(`date`))
from your_table
where date(`date`) > date(now())
);
賓果,謝謝你的解決方案,它的完美! – sxio
試試這個:
SELECT *
FROM Table
WHERE datecol > NOW()
AND datecol < CURDATE() + INTERVAL 1 DAY
LIMIT 1
試試這個,
select top 1 * from tblDate where date >GETDATE() order by date asc
這是sql server不是mysql! –
但有sql標記,他沒有提到明確的數據庫服務器 –
這是標題中的第一個詞 –
Q1回答:
SELECT
*
FROM
closest_date_table
WHERE
date(`date`) = (
SELECT
min(date(`date`))
FROM
closest_date_table
WHERE
date(`date`) > date('2017-01-03')
);
Q2答:
SELECT
*
FROM
closest_date_table
WHERE
date(`date`) = (
SELECT
min(date(`date`))
FROM
closest_date_table
WHERE
date(`date`) > date('2017-01-05')
);
難道是精確到換一種說法爲「選擇較當前日期越大所有時間?」 –
正如在這個答案上顯示的,http://stackoverflow.com/questions/6186962/sql-query-to-show-nearest-date, ORDER BY ABS(DATEDIFF(Field,NOW())) –
@DanFarrell是的,但我想它不到2017年1月5日的Q1(我不想日期NO4顯示) – sxio