Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 10825|Atsakyti: 0

[Šaltinis] Praktinis SQL teiginys: datos įvertinimas

[Kopijuoti nuorodą]
Paskelbta 2014-11-26 15:53:01 | | |

DECLARE @dt datetime
NUSTATYTI @dt=GETDATE()

DECLARE @number int
NUSTATYTI @number=3

--1. Nurodykite pirmos arba paskutinės metų dienos datą
--A. Pirmoji metų diena
SELECT Co nVERT(char(5),@dt,120)+ '1-1 '

--B. Paskutinė metų diena
SELECT Co nVERT(char(5),@dt,120)+ '12-31 '


--2. Pirmoji arba paskutinė ketvirčio, kuriame yra nurodyta data, diena
--A. Pirmoji ketvirčio diena
SELECT Co nVERT(datetime,
Co nVERT(simbolis(8),
DATEADD(Mo nth,
DATEPART(Ketvirtis,@dt)*3-Mėn n-tas(@dt)-2,
@dt),
120)+ '1 ')

--B. Paskutinė ketvirčio diena (BYLOS sprendimas)
SELECT Co nVERT(datetime,
Co nVERT(simbolis(8),
DATEADD(Mo nth,
DATEPART(Ketvirtis,@dt)*3-Mėn n-tas(@dt),
@dt),
120)
+ATVEJIS, KAI DATEPART(Ketvirtis,@dt) į(1,4)
TADA "31" "KITAIP "30" PABAIGA)

--C. Paskutinė ketvirčio diena (tiesioginio stūmimo algoritmas)
SELECT DATEADD(Diena,-1,
Co nVERT(simbolis(8),
DATEADD(Mo nth,
1+DATEPART(Ketvirtis,@dt)*3-Mėn n-tas(@dt),
@dt),
120)+ '1 ')


--3.Pirmoji arba paskutinė mėnesio, kuriame yra nurodyta data, diena
--A. Pirmoji mėnesio diena
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')

--B. Paskutinė mėnesio diena
SELECT DATEADD(Diena,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ')

--C. Paskutinė mėnesio diena (lengva naudoti neteisingą metodą)
SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. Bet kuri savaitės diena, kurioje yra nurodyta data
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)


--5. Bet kuri savaitės diena, kurioje yra nurodyta data
--A.  Sekmadienis kaip pirmoji savaitės diena
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Pirmadienis yra pirmoji savaitės diena
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)






Ankstesnis:Indekso naudojimo problema, kai sqlserver tvarko kaip '%keyword%'
Kitą:ORACLE 11g Naujos funkcijos - Leidžia DDL spynoms laukti DML spynų
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com