See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 10825|Vastuse: 0

[Allikas] Praktiline SQL-lause: kuupäeva hindamine

[Kopeeri link]
Postitatud 26.11.2014 15:53:01 | | |

DEKLAREERI @dt kuupäeva
SEADISTA @dt=GETDATE()

DEKLAREERI @number int
KOMPLEKT @number=3

--1. Määra aasta esimese või viimase päeva kuupäev
--A. Aasta esimene päev
SELECT Co nVERT(char(5),@dt,120)+ '1-1'

--B. Aasta viimane päev
SELECT Co nVERT(char(5),@dt,120)+ '12-31'


--2. Kvartali esimene või viimane päev, kus määratud kuupäev asub,
--A. Kvartali esimene päev
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(veerand,@dt)*3-kuud nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Kvartali viimane päev (JUHTUMI otsus)
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(kvartal,@dt)*3-kuud nth(@dt),
@dt),
120)
+JUHTUM, KUI DATEPART(Quarter,@dt) in(1,4)
SIIS '31 'ELSE '30' LÕPP)

--C. Kvartali viimane päev (otsene tõuge algoritm)
VALI DATEADD(Päev,-1,
Co nVERT(char(8),
DATEADD(Mo nth,
1+DATEPART(veerand,@dt)*3-kuud nth(@dt),
@dt),
120)+ '1 ')


--3. Kuu esimene või viimane päev, mil määratud kuupäev asub,
--A. Kuu esimene päev
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1')

--B. Kuu viimane päev
SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1')

--C. Kuu viimane päev (lihtne kasutada, vale meetod)
SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. Iga nädalapäev, mil määratud kuupäev asub
SELECT DATEADD(Päev,@number-DATEPART(Tööpäev,@dt),@dt)


--5. Iga nädalapäev, mil määratud kuupäev asub
--A.  Pühapäev on nädala esimene päev
SELECT DATEADD(Päev,@number-(DATEPART(Tööpäev,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Esmaspäev on nädala esimene päev
SELECT DATEADD(Päev,@number-(DATEPART(Tööpäev,@dt)+@@DATEFIRST-2)%7-1,@dt)






Eelmine:Indeksi kasutusprobleem, kui sqlserver käsitleb näiteks '%keyword%'
Järgmine:ORACLE 11g Uued funktsioonid – Lubab DDL-lukkudel oodata DML-lukke
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com