#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