Я писал запросы, чтобы урезать время из заданного времени жизни в течение многих лет, основываясь на ответах, таких как this one и this one (и многих других местах), что группы существует пара функций, таких какЗапрос на получение первого дня месяца, не работающего с DATEADD
SELECT DATEADD(day, 0, DATEDIFF(day, 0, getdate()))
и он всегда дает правильный ответ.
Я полагал, что я мог бы перевести ту же логику для нахождения первого числа текущего месяца, используя month
вместо day
, но это дает мне странную дату результата: 1903-10-17, а 2015 -05-01.
Хороший кусок наших серверов по-прежнему работает в 2005 году, поэтому я не думаю, что это сработает для нас в целом, но я еще раз взгляну на ваш пост @AaronBertrand. – Danny
И вам нужно только заменить второй 'GETDATE()', а не первый. Также см. [This] (http://sqlperformance.com/2012/09/t-sql-queries/what-is-the-most-efficient-way-to-trim-time-from-datetime) и [это] (http://sqlperformance.com/2012/10/t-sql-queries/trim-time) для обсуждения вопроса об усечении времени. –