Наконец-то это решило мою проблему. Как сгенерировать ключ хэш-функции 11 для Sms Retriever с подписью в Google App
Решение, упомянутое @farhan в его вопросе, помогло
SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS StartOfMonth
Для любого все еще поиск ответа это работает как очарование и покончило с любым dateadds. Метка времени является дополнительной, в случае, если она нуждается в определении, но работает без также.
SELECT left(convert(varchar, getdate(),23),7)+'-01 00:00:00'
Это могло бы быть новой функцией, но можно также использовать старые функции:
select DATEFROMPARTS(year(@mydate),month(@mydate),'01')
, Если бы дата в переменной была, например '2017-10-29'
, она возвратила бы дату '2017-10-01'
Преобразование строки (например, "1/5/2009") в datetime, безусловно, более разборчиво, но некоторое время назад мы обнаружили код, который возвращал бы первое число месяца ...
DECLARE @Date DATETIME
//...
SELECT DATEADD(mm, DATEDIFF(mm,0,@Date), 0)
Вероятно, довольно быстро. Почему бы не создать его как функцию sql.
CREATE FUNCTION [dbo].[GetFirstDayOfMonth] ( @InputDate DATETIME )
RETURNS DATETIME
BEGIN
RETURN CAST(CAST(YEAR(@InputDate) AS VARCHAR(4)) + '/' +
CAST(MONTH(@InputDate) AS VARCHAR(2)) + '/01' AS DATETIME)
END
GO