Sql tarih işlemleri






Yerel SQL tarih tanımlarını Amerikan tarih biçimine göre ayarlar. Diğer tarih biçimlerini desteklemez. Amerikan tarih biçimi AA/GG/YY yada AA/GG/YYYY olarak iki çeşittir. Tarih kullanımımnda bir hataya mahal vermemek için tarih değerleri tek yada çift tırnak içine alınırlar. Eğer tarih değerini tırnak içine almazsak örneğin 17/7/2000 tarihini 17 bölü 7 bölü 2000 olarak algılayacaktır
aşağıda çeşitli tarih ile ilgili işlemleri bulabilirsiniz. 

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
DECLARE @tarih DATETIME=GETDATE()

SELECT DATEADD(dd,-(DAY(@tarih)-1),@tarih) /**AYIN İLK GÜNÜ **/

UNION ALL

SELECT CONVERT(VARCHAR(10),DATEADD(MONTH,-2,DATEADD(dd,-(DAY(@tarih)-1),@tarih)),112) /**3 AY ÖNCEKİ AYIN İLK GÜNÜ **/

UNION ALL

SELECT DATEADD(MONTH,-2,(CONVERT(DATETIME,CONVERT(int,@tarih-1)))) /**3 AY ÖNCEKİ AYIN BUGÜNÜ **/

UNION ALL

SELECT CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(@tarih)),@tarih),112) /**'Onceki Ayın Son Gunu'**/

UNION ALL

SELECT CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(@tarih)-1),@tarih),112) AS Date_Value /**'Ayın İlk Günü'**/

UNION ALL

SELECT CONVERT(VARCHAR(10),@tarih,112) /**'Bugunun Tarihi'**/

UNION ALL

SELECT CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(DATEADD(mm,1,@tarih))),DATEADD(mm,1,@tarih)),112) /** Ayın Son Günü**/

UNION ALL

SELECT CONVERT(VARCHAR(10),DATEADD(dd,-(DAY(DATEADD(mm,1,@tarih))-1),DATEADD(mm,1,@tarih)),112) /**Sonraki Ayın İlk Günü**/

UNION ALL

SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE()), 0) /**Haftanın İlk Günü**/

UNION ALL

SELECT DATEADD(ww, DATEDIFF(ww,0,GETDATE())+1, 0) /**Sonraki Haftanın İlk Günü **/

UNION ALL

SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) /**Yılın İlk Günü**/

UNION ALL

SELECT DATEADD(dd,-1,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))) /**Yılın Son Günü**/

Yorum bırakın