Je to nepříjemné, ale je to tak. Datový typ Datetime v .NET je z velké části odlišný od MS SQL datetime. Tato odlišnost se ještě prohloubí, pokud používáte jiné local settings, než US-EN.
Pro nenastavené datum se v .NET používá DateTime.MinValue, což je konstanta s hodnotou 1.1. 0001 0:00, maximální hodnota je 31.12, 9999 23:59. Naproti tomu SQL má rozsah těchto hodnot menší 1.1. 1753 – 31.12. 9999. Což znamená, že pokud do SQL pošlete datum starší než 1.1. 1753, dojde k přetečení.
Druhý problém je v různých mezinárodních formátech kdy 10.3. 1999 může znamenat za určitých okolností desátého března a za jiných zase třetího října. Tento problém lze obejít vcelku jednoduše, existuje totiž formát data který nezklame a ten vypadá takto 19991003 tedy formát yyyyMMdd a v tompto formátu můžete datum poslat do SQL databáze bez jakýchkoliv rizik. V C# je to jednoduše např.
Calendar1.SelectedDate.ToString("yyyyMMdd")
.NET datetime 2 SQL datetime
Srpen 17th, 2006 · Zatím nejsou komentáře · Programování
Kup si reklamu navždy pod tímto článkem jen za 140 Kč
Zobrazit formulář pro nákup
Tagy:
Napiš první komentář! ↓
Zatím tu není žádný komentář... Odstartuj to vyplněním formuláře níže.