SQL Server: создайте будущие даты - PullRequest
3 голосов
/ 12 октября 2011

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

Спасибо

Это для запроса SQL, который выполняется в SQL Server 2008 R2.

Ответы [ 2 ]

12 голосов
/ 12 октября 2011

Если вы используете 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 голосов
/ 12 октября 2011

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

DATEADD(month, 1, GETDATE())

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...