Zaidf Ответов: 2

Как я могу перечислить даты перед определенными датами в SQL


Например в таблице
ЗАКАЗЫ( ORDER_ID, CUSTOMER_ID,STATUS,SALESMAN_ID,ORDER_DATE)
существуют значения для каждого столбца.
Значения в датах варьируются от 01-FEB-15 до 19-DEC-17
мне нужно увидеть даты и их значения до 2017 года

Что я уже пробовал:

Список ( order_date)
из ордеров, где order_date < '01-DEC-17';

Richard Deeming

Вы отметили это как C++, но ваш вопрос, похоже, не имеет ничего общего с C++.

Вы ищете записи до начала декабря 2017 года? Или вы ищете записи до начала 2017 года, то есть до 1 января?

2 Ответов

Рейтинг:
2

MadMyche

Вы можете использовать ГОД[^] функция внутри SQL Server для извлечения только Год из значения DateTime. MySql и Oracle также имеют свои собственные версии этой функции.

Это дает довольно простой запрос для использования для того, что вы предоставили

SELECT Order_ID, Customer_ID, [Status], Salesman_ID, Order_Date
FROM   Orders
WHERE  Year(Order_Date) < 2017
Пожалуйста, обратите внимание, что Статус заключен в квадратные скобки; это происходит потому, что это "специальное/зарезервированное" слово в SQL Server

Рекомендации:
Microsoft Docs => YEAR (Transact-SQL)[^]
MySQL => 12.6 функции даты и времени => год[^]
Oracle => функция года[^]


Maciej Los

5ed!

Richard Deeming

К сожалению, этот вопрос не будет Саргативным. :)
Несаргируемые Предикаты - Brent Ozar Unlimited®[^]

Рейтинг:
2

Maciej Los

Это тоже должно сработать:

SELECT Order_ID, Customer_ID, [Status], Salesman_ID, Order_Date
FROM   Orders
WHERE  Order_Date < '2017-12-01'