Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 10825|Atbildi: 0

[Avots] Praktisks SQL paziņojums: datuma novērtējums

[Kopēt saiti]
Publicēts 26.11.2014 15:53:01 | | |

DEKLARĒT @dt datumu un laiku
IESTATĪT @dt=GETDATE()

DEKLARĒT @number int
IESTATĪT @number=3

--1. Norādiet gada pirmās vai pēdējās dienas datumu
--A. Gada pirmā diena
SELECT Co nVERT(char(5),@dt,120)+ '1-1 '

--B. Gada pēdējā diena
SELECT Co nVERT(char(5),@dt,120)+ '12-31 '


--2. Ceturkšņa pirmā vai pēdējā diena, kurā atrodas norādītais datums
--A. Ceturkšņa pirmā diena
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Ceturksnis,@dt)*3-Mo nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Ceturkšņa pēdējā diena (LIETAS spriedums)
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Ceturksnis,@dt)*3-Mo nth(@dt),
@dt),
120)
+GADĪJUMS, KAD DATEPART(ceturksnis,@dt) in(1,4)
TAD "31" "CITĀDI "30" BEIGAS)

--C. Ceturkšņa pēdējā diena (tiešās virzīšanas algoritms)
ATLASIET DATEADD(Diena,-1,
Co nVERT(char(8),
DATEADD(Mo nth,
1+DATEPART(Ceturksnis,@dt)*3-Mo n-tas(@dt),
@dt),
120)+ '1 ')


--3.Mēneša pirmā vai pēdējā diena, kurā atrodas norādītais datums
--A. Mēneša pirmā diena
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')

--B. Mēneša pēdējā diena
SELECT DATEADD(Diena,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ')

--C. Mēneša pēdējā diena (viegli lietojama nepareiza metode)
SELECT DATEADD(Mo nth;1;DATEADD(Diena,-DIENA(@dt),@dt))


--4. Jebkura nedēļas diena, kurā atrodas norādītais datums
ATLASIET DATEADD(Diena;@number-DATEPART(Nedēļdienas;@dt),@dt)


--5. Jebkura nedēļas diena, kurā atrodas norādītais datums
--A.  Svētdiena kā nedēļas pirmā diena
SELECT DATEADD(Diena;@number-(DATEPART(Nedēļas diena;@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Pirmdiena ir nedēļas pirmā diena
ATLASIET DATEADD(Diena;@number-(DATEPART(Darba diena;@dt)+@@DATEFIRST-2)%7-1;@dt)






Iepriekšējo:Indeksa izmantošanas problēma, kad sqlserver apstrādā tādus kā '%keyword%'
Nākamo:ORACLE 11g Jaunas funkcijas - Ļauj DDL slēdzenēm gaidīt DML slēdzenes
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com