Это даст вам последнюю секунду предыдущего месяца
select dateadd(s,-1,dateadd(month,datediff(month,0,GETDATE()),0));
, и это даст вам последний день предыдущего месяца
select dateadd(day,-1,dateadd(month,datediff(month,0,GETDATE()),0));
Подробнеекак это сделать:
select dateadd(day,datediff(day,0,@datetime),0);
или
select dateadd(day,datediff(day,0,GETDATE()),0);
На английском языке: укажите количество дней между этой датой и 0 и добавьте эти дни к 0.
Это работает с любым параметром для datediff.Так что
select dateadd(month,datediff(month,0,GETDATE()),0);
«удалит» всю информацию за день в дополнение к информации о времени.