Дорогие профессионалы,SQL SELECT Первый день и последний день месяца.
У меня есть запрос, построенный для получения первого и последнего дня текущего месяца, но у меня возникла проблема с отметкой времени для первого дня месяца.
declare @FirstDOM datetime, @LastDOM datetime
set @FirstDOM = (select dateadd(dd,-(day(getdate())-1),getdate()))
set @LastDOM = (select dateadd(s,-1,dateadd(mm,datediff(m,0,getdate())+1,0)))
Поскольку это февраль 2015 года, я хотел бы получить результаты:
@FirstDOM = 2015-02-01 00:00:00.000
@LastDOM = 2015-02-28 23:59:59.000
@LastDOM правильно, но я не получаю нули для временного штампа части @FirstDOM, Я получаю правильную дату, но время, когда я запускаю скрипт. Скажем, это 8:50 утра, я получаю:
2015-02-01 08:50:49.160
Каков наилучший способ исправить эту маленькую snafu?
С уважением,
Ник
Поскольку getdate() - это дата, то ваш запрос также вернет дату и время. Одним из способов было бы преобразовать ваш результат на сегодняшний день, затем в varchar и добавить время вручную, или вы можете получить то же самое с datepart & dateadd. – glaeran
FWIW, '23: 59: 59.000 'не последний раз за месяц. Таким образом, вы можете пропустить некоторые данные. –
http://stackoverflow.com/questions/113045/how-to-return-the-date-part-only-from-a-sql-server-datetime-datatype –