@shushpanio
shushpanio

Как правильно написать запрос SQL?

Сразу извиняюсь за глупость вопроса, но есть следующая ситуация:
Таблица в БД с 1-м из полей period_sd_local содержащий в себе записи в формате дд-мм-гггг чч:мм:сс
Мне необходимо выгрузить только строки таблицы за текущий месяц.
К получить выгрузку за сегодня я понял - установить фильтр диапазона с DateTime(Date(DateTimeNow())) по DateTimeNow(), а вот как получить данные за текущий месяц я никак не могу понять.
Точнее как зная текущую дату и время получить выгрузку за интервал с 1 числа текущего месяца 00:00:00 по настоящее время? Больше даже интересует именно получение 1-го числа текущего месяца. Текущее время для фильтра укажу как DateTimeNow().

Заранее спасибо за помощь.
Еще раз извиняюсь за глупость вопроса - я только начинаю постигать запросы методом научного тыка.

P.S. Выгрузку делаю через Tibco Spotfire и как следствие мне тупо нужно задать функции для верхней и нижней границы выгрузки.
  • Вопрос задан
  • 217 просмотров
Решения вопроса 3
impwx
@impwx
Разработчик
Получить первый день месяца по произвольной дате в SQL можно так:

SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth

Дальше сравнивайте с помощью WHERE date BETWEEN StartOfMonth AND @mydate.
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега SQL
Седой и строгий
Если СУБД PostgreSQL и тип поля timestamp или date:
select * from some_table where period_sd_local between date_trunc('month', current_date) and current_date;
Ответ написан
Комментировать
@shushpanio Автор вопроса
shushpanio
Пока увидел ответы уже разобрался сам. Пусть и с костылями. Проблема в том что я особо не разбираюсь в вариациях SQL, а, как уже писал выше, работаю через запрос со стороны Tibco Spotfire и обращаюсь к БД сгенерированную самой Tibco. Но всё равно всем спасибо за ответы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы