Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ ÇÖZÜLDÜ ]MSSQL VeriTabanına Tarih Kaydetme Hatası
#1
S.a

Mssql VeriTabanına Kayıt Eklerken Hata Alıyorum
Tarih Kısmını MSSQL Tarih Formatına 

TDateTime   TARIH_SAAT;
FormatDateTime("yyyy-mm-dd hh:nn",TARIH_SAAT)



Çevirip Başına 'Tek Tırnak ve Sonuna Tek Tırnak Ekliyorum Şöyle Oluyor '2019-08-30 07:38:22' 

Kayıt Ekleme Sorgu Hali

INSERT INTO GOREVDURUMLARI ( BLKODU ,  BLGRVKODU ,  Grubu ,  ADI ,  Tipi , Baslama_Tarihi, Islem_Suresi , SILINDI ) VALUES( '1', 'Açılış', 'Açılış',  'Açılış',  'Açılış', '2019-08-29 17:02' , '0', '0' )  ;

Hatası Kodu 

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

Acaba Nerde Yanlış Yapıyorum
Yardımlarınız için allah razı olsun
Cevapla
#2
(30-08-2019, Saat: 07:46)theSinan Adlı Kullanıcıdan Alıntı: S.a

Mssql VeriTabanına Kayıt Eklerken Hata Alıyorum
Tarih Kısmını MSSQL Tarih Formatına 

TDateTime   TARIH_SAAT;
FormatDateTime("yyyy-mm-dd hh:nn",TARIH_SAAT)



Çevirip Başına 'Tek Tırnak ve Sonuna Tek Tırnak Ekliyorum Şöyle Oluyor '2019-08-30 07:38:22' 

Kayıt Ekleme Sorgu Hali

INSERT INTO GOREVDURUMLARI ( BLKODU ,  BLGRVKODU ,  Grubu ,  ADI ,  Tipi , Baslama_Tarihi, Islem_Suresi , SILINDI ) VALUES( '1', 'Açılış', 'Açılış',  'Açılış',  'Açılış', '2019-08-29 17:02' , '0', '0' )  ;

Hatası Kodu 

[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 10.0][SQL Server]The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Acaba Nerde Yanlış Yapıyorum
Yardımlarınız için allah razı olsun

Büyük ihtimal ile İşletim sistemi tarih formatından kaynaklanıyor. komutta tarih ayracı - işletim sistemi tarafında /  ise hata oluşuyor.

Bu tip sorunları önlemek için @mcuyan beyin önerdiği yöntemi kullanıyorum.

8-02-2019, Saat: 16:17 (Son Düzenleme: 28-02-2019, Saat: 16:20, Düzenleyen: mcuyan.)
Hocam Uygulamanızın Startında Bölgesel ayarlardaki ondalıklı ve binlik basamak ayıracını standarta oturtun..

Projenizi Sağ Tık->ViewSource

Unitlerin altına:


begin
 Application.Initialize;
Application.UpdateFormatSettings := False;
SysUtils.FormatSettings.ThousandSeparator := '.';
SysUtils.FormatSettings.DecimalSeparator := ',';
SysUtils.FormatSettings.DateSeparator := '.';
SysUtils.FormatSettings.TimeSeparator := ':';
SysUtils.FormatSettings.ShortDateFormat := 'dd.mm.yyyy';
SysUtils.FormatSettings.ShortTimeFormat := 'hh:mm';
SysUtils.FormatSettings.LongTimeFormat := 'hh:mm';
SysUtils.FormatSettings.CurrencyString:='₺';
// Form create olayının üstünde yer almalı 
Application.Title := 'Form Caption';
Application.CreateForm(Tdm1, dm1);
Application.CreateForm(TForm3, Form3);
Application.Run;

end.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#3
Aslında ayar SQL Server tarafına gerekiyor gibi. Connection ile bağlandıktan sonra veya sorguyu çalıştırmadan önce "set dateformat ymd" komutunu çalıştırmanız gerekiyor gibi. Zira sorguda kullanılan tarih biçimi yıl, ay, gün şeklinde.
Cevapla
#4
(30-08-2019, Saat: 07:46)theSinan Adlı Kullanıcıdan Alıntı: S.a

Mssql VeriTabanına Kayıt Eklerken Hata Alıyorum

Daha önce başka bir soruya verdiğim cevabı inceleyebilirsiniz. Umarım yararı olur.
http://www.delphican.com/showthread.php?...50#pid5750
WWW
Cevapla
#5
Ado ile benzer sorunu yasadim. Cozumu soyle idi.
TForm1.ADOConnection1AfterConnect(Sender: TObject);
begin
if Sender is TADOConnection then
 TADOConnection(Sender).Execute('set dateformat dmy');
end;
Cevapla
#6
INSERT Cümlesinde gönderilen tarihi

convert(VARCHAR, getdate(), 120)

şekilde yollayın sorun yaşamazsınız

convert(VARCHAR, '01.01.2019 11:11:10', 120)
Gibi

Eğer Saat yollamayacaksan

Tavsiyem

CONVERT(date,'01.01.2019',104)
Cevapla
#7
(30-08-2019, Saat: 07:46)theSinan Adlı Kullanıcıdan Alıntı: S.a

Mssql VeriTabanına Kayıt Eklerken Hata Alıyorum
Tarih Kısmını MSSQL Tarih Formatına 

TDateTime   TARIH_SAAT;
FormatDateTime("yyyy-mm-dd hh:nn",TARIH_SAAT)



Çevirip Başına 'Tek Tırnak ve Sonuna Tek Tırnak Ekliyorum Şöyle Oluyor '2019-08-30 07:38:22' 

Kayıt Ekleme Sorgu Hali

INSERT INTO GOREVDURUMLARI ( BLKODU ,  BLGRVKODU ,  Grubu ,  ADI ,  Tipi , Baslama_Tarihi, Islem_Suresi , SILINDI ) VALUES( '1', 'Açılış', 'Açılış',  'Açılış',  'Açılış', '2019-08-29 17:02' , '0', '0' )  ;

Hatası Kodu 

[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 10.0][SQL Server]The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Acaba Nerde Yanlış Yapıyorum
Yardımlarınız için allah razı olsun


MS SQL Server'da dil veya bölge ayarı bağımlı olmayan güvenli tarih formatı 'YYYYMMDD' şeklindedir. 'YYYY-MM-DD' şeklindeki tarih formatı bölge ve dil ayarlarına bağımlıdır ve farklı dil ve bölge ayarlarında farklı davranış gösterir. Güvenli tarih ve saat formatı ise 'yyyy-mm-ddThh:mi:ss.mmm'  .
WWW
Cevapla
#8
(01-09-2019, Saat: 14:45)csunguray Adlı Kullanıcıdan Alıntı:
(30-08-2019, Saat: 07:46)theSinan Adlı Kullanıcıdan Alıntı: S.a

Mssql VeriTabanına Kayıt Eklerken Hata Alıyorum
Tarih Kısmını MSSQL Tarih Formatına 

TDateTime   TARIH_SAAT;
FormatDateTime("yyyy-mm-dd hh:nn",TARIH_SAAT)



Çevirip Başına 'Tek Tırnak ve Sonuna Tek Tırnak Ekliyorum Şöyle Oluyor '2019-08-30 07:38:22' 

Kayıt Ekleme Sorgu Hali

INSERT INTO GOREVDURUMLARI ( BLKODU ,  BLGRVKODU ,  Grubu ,  ADI ,  Tipi , Baslama_Tarihi, Islem_Suresi , SILINDI ) VALUES( '1', 'Açılış', 'Açılış',  'Açılış',  'Açılış', '2019-08-29 17:02' , '0', '0' )  ;

Hatası Kodu 

[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 10.0][SQL Server]The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

Acaba Nerde Yanlış Yapıyorum
Yardımlarınız için allah razı olsun


MS SQL Server'da dil veya bölge ayarı bağımlı olmayan güvenli tarih formatı 'YYYYMMDD' şeklindedir. 'YYYY-MM-DD' şeklindeki tarih formatı bölge ve dil ayarlarına bağımlıdır ve farklı dil ve bölge ayarlarında farklı davranış gösterir. Güvenli tarih ve saat formatı ise 'yyyy-mm-ddThh:mi:ss.mmm'  .

S.a csunguray tarih Formatı  YYYY-MM-DD olduğundan Servis Uygulaması SYSTEM kullanıcısından Çalışıyor 
SYSTEM bölge ayarları ingilizce imiş 
Tarih Fotmatını

YYYYMMDD hh:nn:ss Yapınca Düzeldi 
Allah razı olsun
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Tek sorguda iki sonuç (Çözüldü) cinarbil 4 262 05-03-2024, Saat: 08:41
Son Yorum: cinarbil
  Tarihin ayın kaçıncı haftası olduğu nasıl bulunur (Çözüldü) adelphiforumz 3 539 19-10-2023, Saat: 12:27
Son Yorum: serdar
  CTE Sorgu sonucunu bir tabloya yazmak (Çözüldü) Bay_Y 0 360 28-08-2023, Saat: 12:47
Son Yorum: Bay_Y
  DBNETLIB Hatası hakkında adelphiforumz 5 1.706 02-06-2023, Saat: 14:18
Son Yorum: Misc-2
  MSSQL Data downgrade (Alt sürüme veri aktarma) işlemleri adelphiforumz 0 485 23-03-2023, Saat: 11:13
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi