Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 10825|Antwoord: 0

[Bron] Praktische SQL-stelling: datumschatting

[Link kopiëren]
Geplaatst op 26-11-2014 15:53:01 | | |

VERKLAAR @dt datum
SET @dt=GETDATE()

VERKLAAR @number int
SET @number=3

--1. Specificeer de datum van de eerste of laatste dag van het jaar
--A. De eerste dag van het jaar
SELECT Co nVERT(char(5),@dt,120)+ '1-1 '

--B. De laatste dag van het jaar
SELECT Co nVERT(char(5),@dt,120)+ '12-31 '


--2. De eerste of laatste dag van het kwartaal waarop de opgegeven datum zich bevindt
--A. Eerste dag van het kwartaal
SELECT Co nVERT(datetime,
Co nVERT(karakter(8),
DATEADD(Mo nth,
DATEPART(Kwartaal, @dt)*3-Maand n-@dt)-2,
@dt),
120)+ '1 ')

--B. Laatste dag van het kwartaal (ZAAK-uitspraak)
SELECT Co nVERT(datetime,
Co nVERT(karakter(8),
DATEADD(Mo nth,
DATEPART(Kwartaal, @dt)*3-Mo n-@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
DAN '31 'ELSE '30' EINDE)

--C. Laatste dag van het kwartaal (direct push algoritme)
SELECTEER DATEADD(Dag,-1,
Co nVERT(karakter(8),
DATEADD(Mo nth,
1+DATEPART(Kwartaal,@dt)*3-Mo nth(@dt),
@dt),
120)+ '1 ')


--3. De eerste of laatste dag van de maand waarop de opgegeven datum zich bevindt
--A. De eerste dag van de maand
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')

--B. De laatste dag van de maand
SELECT DATEADD(Dag,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ')

--C. Laatste dag van de maand (makkelijk te gebruiken verkeerde methode)
SELECTEER DATEADD(Mo nth,1,DATEADD(Dag,-DAG(@dt),@dt))


--4. Elke dag van de week waarop de opgegeven datum zich bevindt
SELECTEER DATEADD(Dag,@number-DATEPART(Weekdag,@dt),@dt)


--5. Elke dag van de week waarop de opgegeven datum zich bevindt
--A.  Zondag als eerste dag van de week
SELECTEER DATEADD(Dag,@number-(DATEPART(Weekdag,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Maandag is de eerste dag van de week
SELECTEER DATEADD(Dag,@number-(DATEPART(Weekdag,@dt)+@@DATEFIRST-2)%7-1,@dt)






Vorig:Indexgebruiksprobleem wanneer sqlserver handelt als '%keyword%'
Volgend:ORACLE 11g Nieuwe functies - Maakt het mogelijk dat DDL-locks wachten op DML-locks
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com