2011-10-12 3 views
2

Как создать будущие даты в SQL? Например, я хочу иметь возможность использовать свой диапазон дат и показывать все в течение всего следующего месяца (заказы на покупку), затем два раза в течение двух месяцев и т. Д. Я использовал fn NOW() для текущей даты/времени, но это мне не помогает вообще для показа записей на следующий месяц и т.д.SQL Server: создание будущих дат

Благодаря

Это для запроса SQL, что при этом в SQL Server 2008 R2.

+1

Что такое РСУБД? –

+0

И как вы будете использовать это? Вам нужно внешнее соединение против списка дат или его нужно использовать только как фильтр поиска? –

ответ

11

Если вы используете MySQL вы можете использовать:

SELECT date_col FROM your_table 
WHERE date_col BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 MONTH) 

Для MS-SQL (он должен работать):

SELECT date_col FROM your_table 
WHERE date_col BETWEEN GETDATE() AND DATEADD(Month, 1, GETDATE()) 

Для Oracle (он должен работать):

SELECT date_col FROM your_table 
WHERE date_col BETWEEN SYSDATE AND add_months(SYSDATE, 1) 
3

Вы можете использовать функцию DATEADD для создания дат относительно другой даты. Следующий вызов будет генерировать дату ровно один месяц в будущем:

DATEADD(month, 1, GETDATE()) 

Вы можете использовать отрицательные числа, чтобы идти назад, а также вперед. Есть много других приращений, которые вы можете использовать, например. год, день, неделя, квартал, миллисекунда и т. д.

Смежные вопросы