Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 10923|Válasz: 0

[Forrás] Gyakorlati SQL állítás: dátumértékelés

[Linket másol]
Közzétéve 2014. 11. 26. 15:53:01 | | |

DEKLARÁLD @dt dátumidőpontot
ÁLLÍTSON @dt=GETDATE()

DEKLARÁLD @number int
SET @number=3

--1. Határozd meg az év első vagy utolsó napjának dátumát
--A. Az év első napja
SELECT Co nVERT(char(5),@dt,120)+ '1-1'

--B. Az év utolsó napja
SELECT Co nVERT(char(5),@dt,120)+ '12-31'


--2. Az adott dátum helyszíne első vagy utolsó napja annak a negyedévnek a
--A. A negyedév első napja
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(negyed,@dt)*3 hónap nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Negyedév utolsó napja (ÜGYÍTÉLET)
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(negyed,@dt)*3 hónap nth(@dt),
@dt),
120)
+CASE WHEN DATEPART (Negyed,@dt) in(1,4)
AZTÁN '31 'ELSE '30' VÉGE)

--C. A negyedév utolsó napja (közvetlen push algoritmus)
VÁLASZD DATEADD(Nap,-1,
Co nVERT(char(8),
DATEADD(Mo nth,
1+DATEPART(negyed,@dt)*3 hónap nth(@dt),
@dt),
120)+ '1 ')


--3. Az adott hónap első vagy utolsó napja, amelyben a megadott dátum található.
--A. A hónap első napja
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')

--B. A hónap utolsó napja
SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1')

--C. A hónap utolsó napja (könnyen használható, rossz módszer)
SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. Bármely hétnap, ahol a megadott dátum található.
VÁLASZD DATEADD(Nap,@number-DATEPART(Hétköznap,@dt),@dt)


--5. Bármely hétnap, amelyben a megadott dátum található.
--A.  Vasárnap volt a hét első napja
SELECT DATEADD(Nap,@number-(DATEPART(Hétköznap,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Hétfő a hét első napja
SELECT DATEADD(Nap,@number-(DATEPART(Hétköznap,@dt)+@@DATEFIRST-2)%7-1,@dt)






Előző:Indexhasználati probléma, amikor a sqlserver például a '%keyword%' kezelést végzi
Következő:ORACLE 11g Új Funkciók – Lehetővé teszi, hogy a DDL zárak megvárják a DML zárakat
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com