первый день того же месяца - PullRequest
2 голосов
/ 22 сентября 2010

У меня есть параметр даты (@rptMonth), который выбирается пользователем из календаря выбора даты.Дата должна быть первым днем ​​месяца.Независимо от того, что выберет пользователь, я бы хотел превратить это в мм / 01 / гггг.Например - мне нужен первый день месяца.Поэтому, если пользователь выбирает 22.06.2010, мне нужно превратить это в 01.06.2010.Поэтому в моем запросе это будет что-то вроде WHERE YEAR_MONTH = DATEADD ("m", datediff ("m", "1900-01-01", @ RptMonth), "1900-01-01"), "mm / dd /yyyy "но когда я пытаюсь это сделать, я получаю неправильный синтаксис рядом с ','.Не знаю, будет ли это даже работать.

Ответы [ 2 ]

5 голосов
/ 22 сентября 2010

Обновление:

select dateadd(month, datediff(month, 0, getdate()), 0)

Старше:

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

declare @arbitraryDate datetime;
set @arbitraryDate = getdate();
set @arbitraryDate = dateadd(dd, datediff(dd, 0, @arbitraryDate), 0) --strip time
select dateadd(dd, -day(@arbitraryDate)+1,@arbitraryDate) --strip days

Или это:

select cast(convert(varchar(6), getdate(), 112) + '01' as datetime)
3 голосов
/ 22 сентября 2010

Это тоже должно работать:

SELECT CAST(CAST(YEAR(@pInputDate) AS VARCHAR(4)) + 
            CAST(MONTH(@pInputDate) AS VARCHAR(2)) + '01' AS DATETIME)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...