sai.2012 Ответов: 2

Данные между 1 января гггг(всегда предыдущий год) и 31 декабря гггг(всегда предыдущий год) запрос в предложении where


Всем привет,

Если я хочу запустить запрос сегодня(12/2/2017), то мои данные должны быть в промежутке между 1 января 2016 года (всегда предыдущий год) и 31 декабря (всегда предыдущий год) - я не хочу жестко кодировать даты.

если я хочу запустить запрос 1 января 2018 года или в любой день в 2018 году, то мои данные должны быть в промежутке между 1 января 2017 года(всегда предыдущий год) и 31 декабря 2017 года(всегда предыдущий год).

если я хочу запустить запрос в 2019 году, то мои данные должны быть в промежутке между 1 января 2018 года (всегда предыдущий год)и 31 декабря 2018 года (всегда предыдущий год).

как написать запрос, пожалуйста, посоветуйте.

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

Всем привет,

Если я хочу запустить запрос сегодня(12/2/2017), то мои данные должны быть в промежутке между 1 января 2016 года (всегда предыдущий год) и 31 декабря (всегда предыдущий год) - я не хочу жестко кодировать даты.

если я хочу запустить запрос 1 января 2018 года или в любой день в 2018 году, то мои данные должны быть в промежутке между 1 января 2017 года(всегда предыдущий год) и 31 декабря 2017 года(всегда предыдущий год).

если я хочу запустить запрос в 2019 году, то мои данные должны быть в промежутке между 1 января 2018 года (всегда предыдущий год)и 31 декабря 2018 года (всегда предыдущий год).

как написать запрос, пожалуйста, посоветуйте.

2 Ответов

Рейтинг:
1

OriginalGriff

Посмотрите на функции SQL:
Функция SQL Server DATEADD() [^] и Год (Transact-SQL) | Microsoft Docs[^] или Функция SQL Server DATEPART() [^]
Получите год, постройте дату первого января этого года. Используйте его с DATEADD -1 день для последнего дня и -1 год для начального дня.


Рейтинг:
1

sai.2012

Я решил эту проблему :
ADD_MONTHS анимации (год ОТБР (компания "Новые системы",''), -12)
и ADD_MONTHS (TRUNC (SYSDATE, 'YEAR'), -1 ) +30 )
спасибо тебе, Оригиналгрифф.