Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 10825|Yanıt: 0

[Kaynak] Pratik SQL ifadesi: tarih tahmini

[Bağlantıyı kopyala]
Yayınlandı 26.11.2014 15:53:01 | | |

DECLARE @dt tarih saati
SET @dt=GETDATE()

DEKLARASYON @number
SET @number=3

--1. Yılın ilk veya son gününün tarihini belirtin
--A. Yılın ilk günü
SELECT Co nVERT(char(5),@dt,120)+ '1-1'

--B. Yılın son günü
SELECT Co nVERT(char(5),@dt,120)+ '12-31'


--2. Belirlenen tarihin bulunduğu çeyreğin ilk veya son günü
--A. Çeyreğin ilk günü
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Çeyrek,@dt)*3-Mo nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Çeyreğin son günü (DAVA KARARI)
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD(Mo nth,
DATEPART(Çeyrek,@dt)*3-Mo nth(@dt),
@dt),
120)
+CASE WHEN DATEPART (Çeyrek,@dt) in(1,4)
SONRA '31' 'ELSE '30' SONU)

--C. Çeyreğin son günü (doğrudan itme algoritması)
DATEADD(Gün,-1,
Co nVERT(char(8),
DATEADD(Mo nth,
1+DATEPART(Çeyrek,@dt)*3-Mo nth(@dt),
@dt),
120)+ '1 ')


--3. Belirtilen tarihin geçtiği ayın ilk veya son günü
--A. Ayın ilk günü
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1')

--B. Ayın son günü
DATEADD'i SEÇİ(Gün,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1')

--C. Ayın son günü (kullanımı kolay yanlış yöntem)
DATEADD'i SEÇİ(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. Belirtilen tarihin geçtiği haftanın herhangi bir günü
SEÇ DATEADD(Gün,@number-DATEPART(Hafta Günİ,@dt),@dt)


--5. Belirtilen tarihin bulunduğu haftanın herhangi bir günü
--A.  Pazar haftanın ilk günü olarak
DATEADD(Gün,@number-(DATEPART(Hafta İşİ,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Pazartesi haftanın ilk günü
DATEADD(Gün,@number-(DATEPART(Hafta İbiri,@dt)+@@DATEFIRST-2)%7-1,@dt)






Önceki:SQL Server '%keyword%' gibi işlemleri yaptığında indeks kullanım sorunu
Önümüzdeki:ORACLE 11g Yeni Özellikler - DDL kilitlerinin DML kilitlerini beklemesine izin verir
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com