/ / sql získať predchádzajúci mesiac - sql

sql získať predchádzajúci mesiac - sql

Potrebujem získať predchádzajúci mesiac a rok, kedy bol zadaný. Takže ak používateľ zadá 201412, potom by mal vrátiť 201411. Ak píšu 201501, potom by mal vrátiť 201401.

odpovede:

0 pre odpoveď č. 1

V 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 pre odpoveď č. 2

Rýchly spôsob, ako to urobiť v databáze SQL Serverby bolo vytvoriť prvok dátumu z vášho reťazca, previesť ho na typ dátumu, potom použiť funkciu dateadd a pridať -1 mesiac (odčítať jeden mesiac, ak sa vám páči)

Ako toto:

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

Kroky rozdelené:

  1. Získajte rok výberom 4 znakov vľavo
  2. Získajte mesiac výberom dvoch pravých znakov
  3. Pridajte oddeľovače "-" a 01 s predchádzajúcimi dvoma prvkami, aby ste získali reťazec s platným formátom, ktorý sa má konvertovať
  4. Konvertujte reťazec na typ dátumu, aby ste povolili operácie dátumu
  5. Použite funkciu dateadd na pridanie -1 mesiaca do elementu dátumu
  6. Prsty prekročili použiteľný vstup, ktorý nezabije váš kód