/ / sql отримати попередній місяць - sql

sql отримати попередній місяць - sql

Мені потрібно отримати попередній місяць і рік, коли він вводиться. Отже, якщо користувач напише 201412, то він має повернутися 201411. Якщо вони вводять 201501, то він має повернутися до 201401.

Відповіді:

0 для відповіді № 1

У SQL Server

 DECLARE @dateAsNumber VARCHAR(8);
SET @dateAsNumber = "198705";

DECLARE @DateConvertedFromNumber DATETIME;
SELECT  @DateConvertedFromNumber = CONVERT (DATETIME, CONVERT(CHAR(8), @dateAsNumber
+ "01"))

SELECT  LEFT(CONVERT(VARCHAR,   DATEADD(YEAR, -1,
@DateConvertedFromNumber), 112),
6) AS "Year Before"

SELECT  LEFT(CONVERT(VARCHAR,   DATEADD(MONTH, -1,
@DateConvertedFromNumber), 112),
6) AS "Month Before"

0 для відповіді № 2

Швидкий спосіб зробити це на базі даних SQL Serverполягає в тому, щоб створити елемент дати з вашого рядка, перетворити його в тип дат, потім скористатись датою дати функції та додайте -1 місяць (якщо ви хочете відняти один місяць)

Подобається це:

select DATEADD(MONTH,-1,CAST(LEFT(201401,4)+"-"+RIGHT(201401,2)+"-01" AS DATE))

Розбиті кроки:

  1. Отримайте рік, вибравши 4 лівого краю
  2. Отримайте місяць, вибравши 2 праві символи
  3. Додайте розділювачі "-" та 01 з попередніми двома елементами, щоб отримати рядок з правильним форматом для перетворення
  4. Перетворіть рядок у тип дат, щоб увімкнути операції дати
  5. Використовуйте функцію dateadd, щоб додати елемент дати до -1 місяця
  6. Пальці перейшли на корисний вхід, який не зніме ваш код