Получить SQL с ближайшей / наименьшей датой

#sql #date

#sql #Дата

Вопрос:

У меня есть четыре даты с разными ценами на каждую дату:

 10/01/2011  $25
10/08/2011  $50
11/17/2011  $100
12/23/2011  $150
  

SQL:

 SELECT price FROM MyTable WHERE MyDate <= '10/12/2011'
  

ПРОБЛЕМА: этот запрос возвращает 25 и 50 долларов. Мне нужно, чтобы он давал мне только ближайшую дату…
Как я могу заставить его вернуть только 50 долларов?

Комментарии:

1. какой диалект SQL (Microsoft SQL, Oracle, MySQL) Приведенный ниже ответ предназначен для Microsoft SQL, который может быть тем, что вы ищете.

Ответ №1:

 SELECT top 1 price FROM MyTable WHERE MyDate <= '10/12/2011' order by MyDate desc
  

Ответ №2:

Попробуйте это (в SQL Server)

 SELECT TOP 1 price
FROM MyTable
WHERE myDate <= getDate() 
ORDER BY myDate DESC
  

Попробуйте это (в MySQL)

 SELECT price
FROM MyTable
WHERE myDate <= now()
ORDER BY myDate DESC
LIMIT 1