Я не смог найти решение, которое дает первый и последний день предыдущего месяца с меткой времени. Надеюсь, это поможет другим. Если уже есть решение этой проблемы, прошу прощения.
Вот решение.
SELECT DATEADD(month, DATEDIFF(month, -1, getdate()) - 2, 0) as FirtDayPreviousMonthWithTimeStamp,
DATEADD(ss, -1, DATEADD(month, DATEDIFF(month, 0, getdate()), 0)) as LastDayPreviousMonthWithTimeStamp
Это вернет следующее, если currentdate = '2012-7-31'
результат: 2012-06-01 00:00:00.000 2012-06-30 23:59:59.000
Это вернет следующее, если currentdate = '2012-1-1'
результат: 2011-12-01 00:00:00.000 2011-12-31 23:59:59.000
sql-server
datetime
Джей С.
источник
источник
Ответы:
источник
-1
вDATEDIFF
нем, выдает ошибку, чтоThe arguments to the following function are not valid: DATEDIFF
Первый день текущей недели.
Последний день текущей недели.
Первый день прошлой недели.
Последний день прошлой недели.
Первый день следующей недели.
Последний день следующей недели.
Первый день текущего месяца.
Последний день текущего месяца.
В этом примере работает только дата 31. а оставшиеся дни нет.
Первый день прошлого месяца.
Последний день прошлого месяца.
Первый день следующего месяца.
Последний день следующего месяца.
Первый день текущего года.
Последний день текущего года.
Первый день прошлого года.
Последний день прошлого года.
Первый день следующего года.
Последний день следующего года.
источник
источник
Решение
Чтобы фактически вычислить запрошенные значения, включите в свой SQL следующее.
Имейте в виду, что он должен быть вставлен раньше, чем любые инструкции, которые ссылаются на параметры, но с этого момента вы можете ссылаться на @FirstDayOfLastMonth и @LastDayOfLastMonth в своем коде.
пример
Давайте посмотрим на код в действии:
Запустите приведенный выше код, чтобы получить следующий результат:
Примечание: имейте в виду, что сегодня для меня 12 сентября 2016 года .
Общие параметры даты
Вы хотите большего?
Чтобы настроить более широкий диапазон удобных параметров, связанных с датой, включите в свой SQL следующее:
Было бы разумно включить его раньше, желательно в начале вашей процедуры или SQL-запроса.
После объявления на параметры можно ссылаться в любом месте вашего кода столько раз, сколько вам нужно.
пример
Давайте посмотрим на код в действии:
Запустите приведенный выше код, чтобы получить следующий результат:
Если ваша страна отсутствует, то это потому, что я не знаю ее кода. Было бы очень полезно отредактировать этот ответ и добавить новый столбец для своей страны.
Заранее спасибо.
Примечание: имейте в виду, что сегодня для меня 12 сентября 2016 года .
Ссылки
Для получения дополнительной информации о международном стандарте дат ISO8601 перейдите по этой ссылке:
Чтобы получить дополнительную информацию о международном стандарте дат ODBC, перейдите по этой ссылке:
Чтобы просмотреть список форматов даты, с которыми я работал, перейдите по этой ссылке:
Для дальнейшего чтения о типе данных DATETIME перейдите по этой ссылке:
источник
источник
В SQL2012 появилась новая функция под названием
EOMONTH
. С помощью этой функции можно легко найти первый и последний день последнего месяца.источник
Я использовал следующую логику в отчетах SSRS.
источник
Вы можете получить первый и последний день предыдущего месяца (с отметкой времени) в SQL Server, выполнив
источник
Возьмите некоторую базовую дату - 31-е число месяца, например, «20011231». Затем используйте
следующую процедуру (ниже я привел 3 идентичных примера, отличается только значение @dt).
источник
Вот довольно простой и динамичный способ. Для последнего дня прошлого месяца вычтите текущий числовой день из сегодняшней даты. Для первого дня прошлого месяца используйте тот же код, просто повторите вычитание числового дня из предыдущего результата и прибавьте 1.
источник
Чтобы получить первое свидание в прошлом месяце:
Чтобы получить последнюю дату в прошлом месяце:
источник
Я еще не видел этого решения; я предпочитаю его более простую читаемость:
источник
Это самый простой из известных мне способов узнать первый день предыдущего месяца:
Шаг 1. Перенесите данные в Postgres
Шаг 2:
источник