Forum

Sql'de bir tarihin ...
 
Bildirimler
Hepsini Temizle

Sql'de bir tarihin o ayın kaçıncı hafta oldugunu bulma

10 Yazılar
3 Üyeler
0 Likes
15.1 K Görüntüleme
(@EmreORHAN)
Gönderiler: 11
Eminent Member
Konu başlatıcı
 

Başlıkta belirttiğim konu hakkında bana acilen yardımcı olacak varmı ? Şirket için rapor hazırlıyorum da 🙁

 
Gönderildi : 29/07/2011 16:01

(@mesutaladag)
Gönderiler: 327
Reputable Member
 

Merhabalar,

 Asagidaki sorguyu kullanabilirsiniz:

SELECT DATEPART( wk, 'Tarihbilgisi')   --wk : week gosterir.

iyi calismalar,

Mesut Aladag.
Microsoft MVP, MCT

 
Gönderildi : 29/07/2011 18:16

(@EmreORHAN)
Gönderiler: 11
Eminent Member
Konu başlatıcı
 

Hocam sanırım soruyu anlamadınız .

 
Gönderildi : 29/07/2011 19:17

(@mesutaladag)
Gönderiler: 327
Reputable Member
 

Pardon, ben yılın kaçıncı haftasi oldugunu anlamistim.

Dogru sorgu icin http://www.berezniker.com/content/pages/sql/microsoft-sql-server/week-number-month   adresindeki örnek isinizi gorecektir.

 
Gönderildi : 29/07/2011 19:28

(@EmreORHAN)
Gönderiler: 11
Eminent Member
Konu başlatıcı
 

Örnek için teşekkür ederim hocam ben bunu yaptım fakat söyle bir durum ortaya cıkıyor

Ben haftalık raporlar almak istiyorum .

Fakat Temmuzun 31 ile Ağustosun 4 benim için 1 hafta . Ben 31 yazdıgımda 5 değerini dönürüyor bu doğru ama ben haziranın 2 si yazdıgımdada 5 döndürmeli . Şimdiden Allah razı olsun. Cevabınızı dört gözle bekliyorm.

                                                    

 
Gönderildi : 29/07/2011 19:56

(@mesutaladag)
Gönderiler: 327
Reputable Member
 

Merhabalar,

Aşağıdaki sorguyu test edermisiniz?

SELECT DATEPART(DAY, GETDATE() - 1) / 7 + 1 AS AyinKacinciHaftasi

 

 

 
Gönderildi : 01/08/2011 14:47

(@EmreORHAN)
Gönderiler: 11
Eminent Member
Konu başlatıcı
 

Hocam sanrıım ben problemi anlatamadım .

 
Gönderildi : 01/08/2011 16:13

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

Keyifli bir mola çalışması oldu [:)]


DECLARE @TARIH AS DATE
SET @TARIH='2011-08-05'
SELECT
 CASE
  WHEN DATEPART(DAY,@TARIH)>6
   THEN DATEPART(WK,@TARIH)
  ELSE
   CASE
    WHEN DATEPART(WEEKDAY,@TARIH)=DATEPART(DAY,@TARIH)           
     THEN DATEPART(WK,@TARIH)
    ELSE
     DATEPART(WK,DATEADD(mm,-1,DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))))
   END
 END


 


@TARIH değişkenini dilediğiniz gibi doldurabilirsiniz

 
Gönderildi : 01/08/2011 19:21

(@EmreORHAN)
Gönderiler: 11
Eminent Member
Konu başlatıcı
 

Hocam merhaba,

 select  DATEPART( wk, '08.02.2011')

bu kod sizin yazdıgınız fonksiyon ile aynı .

 

Benim yapmak istediğim

 

Ben haftalık raporlar almak istiyorum .

Fakat Temmuzun 31 ile Ağustosun 4 benim için 1 hafta . Ben 31 yazdıgımda 5 değerini dönürüyor bu doğru ama ben haziranın 2 si yazdıgımdada 5 döndürmeli . Şimdiden Allah razı olsun. Cevabınızı dört gözle bekliyorm.

                                                      

 
Gönderildi : 02/08/2011 14:23

(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
 

Deneme yapmadan yargılamışsınız; sizin yazdığınız tek satırlık kodla benim oluşturduğum fonksiyon arasında uçurum var. Benim oluşturduğum kod 6 ağustos ile 31 temmuzun aynı haftada yani 33. hafta olduğunu döndürür. Eğer siz her ayın başında haftalık değerin 1'den başlayarak sıfırlanmasını istiyor, ayı kendi içinde haftalık değerlendirmek istiyorsanız o zaman benim oluşturduğum kodu kendinize örnek alarak biraz kodlama gayreti göstererek tam olarak istediğiniz sonuca ulaşabilirsiniz. Eğer kodlama yapma konusunda sıkıntı yaşıyorsanız bu konuda destek almanızda sizin için yarar olacağını düşünüyorum.

 
Gönderildi : 02/08/2011 20:49

Paylaş: