В моей таблице есть поле с датой в формате Datetime.
Я хочу выбрать все записи, где дата в этом поле больше, чем дата за 40 дней до 1-го числа текущего месяца.
Пытается найти правильный синтаксис T-SQL для этого.
Будет ли это работать
select @urdatecolumn > (getdate()- (DAY(getdate()) + 40-1))
Это выражение дает вам дату, которую вы ищете:
DATEADD(DAY, -DATEPART(d, GETDATE()) + 1 - 40, GETDATE())
Попробуйте это
where dt_blah > DATEADD(d,-40,DATEADD(wk, DATEDIFF(wk, 0, dateadd(dd, 6 - datepart(day, dt_blah), dt_blah)), 0)