SORU
22 Ocak 2009, PERŞEMBE


Hata - SqlDateTime taşması. 1/1/1753 12:00:00 arasında olmalıdır AM ve 12/31/9999 11:59:59

Yazdığım bu kod parçası kullanıyorum ve en belirsiz bu şekilde çalışıyor. DateTime iki sütun içeren veritabanına bir satır eklemek istiyorum:

myrow.ApprovalDate = DateTime.Now
myrow.ProposedDate = DateTime.Now

Ve henüz, ben veritabanı güncellemesi yaparken bu hatayı alıyorum:

SqlDateTime taşması. 1/1/1753 12:00:00 AM arasında olmalı ve 12/31/9999 11:59:59.

Hatta veritabanı ve sabit kod eklenen bir değer kopyalama güncelleştirilen nesnenin içine denedim:

// I copied this value from the DB
myrow.ApprovalDate =  Convert.ToDateTime("2008-12-24 00:00:00.000");

Yine aynı hata, garip olan kısmı yukarıdaki numara DB ilk eklemek için çalıştı ama başarısız oldu. Ne herhangi bir fikir?

CEVAP
22 Ocak 2009, PERŞEMBE


DateTime C A# bir değer türü, bir başvuru türü değil, ve bu nedenle boş olamaz. Ancak Sql Sunucuları aralığının dışında olan sabit DateTime.MinValue 8 ** veri türü olabilir.

Değer türleri her zaman (varsayılan) değerinin garantili (sıfır) her zaman açıkça (DateTime.ayarlanması gerek kalmadan MinValue).

Sonuç muhtemelen veritabanına aktarmak için çalıştığınız Geri Al DateTime değeri var.

DateTime.MinValue = 1/1/0001 12:00:00 AM
DateTime.MaxValue = 23:59:59.9999999, December 31, 9999, 
                    exactly one 100-nanosecond tick 
                    before 00:00:00, January 1, 10000

MSDN: DateTime.MinValue


Sql Server İle İlgili

datetime
Tarih ve zaman verileri ile Ocak-Aralık 1, 1753 31, 9999, bir doğruluk içerecek üç saniye (3.33 milisaniye eşdeğer veya 0.00333 saniye). Değerleri .000, .003 veya da.007 saniye artışlarla yuvarlanır

*
Ocak-tarih ve saat veri Haziran 1, 1900, dakika hassasiyetle, 6, 2079,. 29.998 saniye ile * değerleri ya da alt-en yakın dakikaya yuvarlanır; değerler 29.999 saniye veya daha yüksek olan en yakın dakikaya yuvarlanır.

MSDN: Sql Server DateTime and SmallDateTime


Son olarak, kendini geçer C# DateTime gibi bir dize için sql, biçim gibi korumak için maksimum hassasiyet ve önlemek için sql sunucudan atma benzer bir hata.

string sqlTimeAsString = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fff")

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chrmoe

    chrmoe

    7 Kasım 2006
  • FRED

    FRED

    1 EKİM 2005
  • habpsu

    habpsu

    25 Temmuz 2007