SQL Последние 6 месяцев

У меня есть таблица, содержащая один столбец datetime. Мне нужно возвращать строки всего за последние 6 месяцев. Это можно сделать с помощью

where datetime_column > DATEADD(m, -6, current_timestamp)

Но как продлить этот вариант, если я хочу вернуть последний месяц, начиная с первого дня месяца? Например. Я запускаю это условие в середине месяца (14/6/2000), последняя строка имеет значение 14/1/2000, но я хотел бы вернуть ее как 1/1/2000. Любые советы?

Я пробовал некоторые подзапросы (максимальная функция datetime, включая функцию месяца), но без успеха.

Ответы

Ответ 1

Для MS SQL Server вы можете использовать:

where datetime_column >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6,
current_timestamp)), 0)

Ответ 3

Попробуйте этот

where datediff(month, datetime_column, getdate()) <= 6


Эта часть datediff(month, datetime_column, getdate()) получит разницу месяца в числе текущей даты и Datetime_Column и вернет строки типа:

Результат
1
2
3
4
5
6
7
8
9 < бр /" > 10

Это наше окончательное условие для получения данных за последние 6 месяцев.

где результат <= 6

Ответ 4

.... где yourdate_column> DATE_SUB (сейчас(), ИНТЕРВАЛ 6 МЕСЯЦЕВ)

Ответ 5

select *
from tbl1
where
datetime_column >= 
DATEADD(m, -6, convert(date, convert(varchar(6), getdate(),112) + '01'))