Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: Sql Server Türkçe Tarih Formatı  (Okunma sayısı 9683 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı dynamo

  • Kıdemli Üye
  • *****
  • İleti: 120
  • Rep: +3/-1
Sql Server Türkçe Tarih Formatı
« : 12 Kasım 2007 14:35:15 »
Sql server, tarih formatını, veritabanına Amerikan sistemine göre (yil-ay-gün) kaydeder.



Bu durumda programdan Türkçe tarih formatına göre(gün-ay-yil) yapılacak bir sorgu

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

hatasını verecektir.




Türkçe tarih formatına göre veritabanına login olmak için 2 yöntem kullanılır:

1-)SET DATEFORMAT DMY

2-)SET LANGUAGE Turkish






"SET DATEFORMAT" tarih formatını dönüştürür."SET LANGUAGE" veritabanı dilini belirtir,aynı zamanda tarih formatını bu dile göre ayarlar.

"set dateformat dmy" yada "SET LANGUAGE Turkish" sql sorgularını başına eklenir.


Kod: Delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.    y,m,d:Word;
  4.    sa,dk,sn,sl:Word;
  5.    tarih_saat1,tarih_saat2:string;
  6. begin
  7.    DecodeDate(DateTimePicker3.Date,y,m,d);
  8.    DecodeTime(DateTimePicker4.Time,sa,dk,sn,sl);
  9.    tarih_saat1:=datetimetostr(EncodeDateTime(y,m,d,sa,dk,sn,sl));
  10.  
  11.    DecodeDate(DateTimePicker5.Date,y,m,d);
  12.    DecodeTime(DateTimePicker6.Time,sa,dk,sn,sl);
  13.    tarih_saat2:=datetimetostr(EncodeDateTime(y,m,d,sa,dk,sn,sl));
  14.  
  15.    ADOQuery1.Close;
  16.    ADOQuery1.SQL.Clear;
  17.    ADOQuery1.SQL.Add('SET DATEFORMAT DMY select * from Kayit where TarihSaat>='''+tarih_saat1+''' and TarihSaat<='''+tarih_saat2+'''');
  18.    ADOQuery1.Open;
  19.  
  20. end;

İçinde tarih ile ilgili bir alan içeren her ADOQuery sorgusunun başına "set dateformat dmy" kodu eklemek zahmetli olacağından,bunun yerine tüm datasetlerin (ADOQuery, ADOTable,ADODataset) bağlı olduğu ADOConnection nesnesinin AfterConnect olayında bu kod çalıştırılırsa ADOConnection veritabanına bağlı olduğu sürece "set dateformat dmy" bellekte tutacaktır.

Kod: Delphi
  1. //sql server Türkçe tarih formatı dmy--->gün.ay.yıl
  2. procedure TForm1.ADOConnection1AfterConnect(Sender: TObject);
  3. begin
  4.    ADOConnection1.Execute('SET DATEFORMAT DMY');
  5. end;

örnek uygulama "Sql Server Veritabanına Tarih Saat Bilgisi Kaydetme" adlı makalede

http://www.delphidunyasi.net/index.php?topic=2777.0:
« Son Düzenleme: 12 Kasım 2007 16:16:14 by Fatih »

Çevrimdışı özlem

  • Üye
  • ***
  • İleti: 21
  • Rep: +0/-2
Ynt: Sql Server Türkçe Tarih Formatı
« Yanıtla #1 : 07 Aralık 2007 17:54:58 »
YARDIMLARINIZ İÇİN ÇOK ÇOK TEŞEKKÜRLER UZUN ZAMANDIR BİZİM İÇİN BÜYÜK Bİ SORUNDU ORTADAN KALTI TEŞEKKÜRLER

Çevrimdışı mıstık_karaca

  • Yeni Üye
  • *
  • İleti: 6
  • Rep: +0/-0
  • Hata yapmaktan korkmak, ilerlemenin ölümüdür
Ynt: Sql Server Türkçe Tarih Formatı
« Yanıtla #2 : 14 Mart 2008 15:27:06 »
ellerine sağlık kardeş

Çevrimdışı yaralidost

  • Yeni Üye
  • *
  • İleti: 2
  • Rep: +0/-0
Ynt: Sql Server Türkçe Tarih Formatı
« Yanıtla #3 : 26 Kasım 2008 23:36:43 »
ellerine sağlık saolasın

Çevrimdışı sheshman

  • Kıdemli Üye
  • *****
  • İleti: 423
  • Rep: +6/-0
  • Cinsiyet: Bay
Ynt: Sql Server Türkçe Tarih Formatı
« Yanıtla #4 : 13 Ocak 2010 11:06:43 »
allah senden razı olsun dostum iki gündür saçlarımı yoluyordum resmen SQL tarihi ay.gün.yıl olarak girdiriyordu sanırım bu sorunumu çözecek çok teşekkürler
Dünya sizden nefret ederse sizden önce benden nefret etmiş olduğunu bilin. Dünyadan olsaydınız dünya kendisine ait olanı severdi.

Çevrimdışı sheshman

  • Kıdemli Üye
  • *****
  • İleti: 423
  • Rep: +6/-0
  • Cinsiyet: Bay
Ynt: Sql Server Türkçe Tarih Formatı
« Yanıtla #5 : 13 Ocak 2010 11:09:33 »
dostum tekrar tekrar teşekkür ederim mümkünse en güzel bişey bu komut sorunum çözüldü :)
Dünya sizden nefret ederse sizden önce benden nefret etmiş olduğunu bilin. Dünyadan olsaydınız dünya kendisine ait olanı severdi.