it-swarm.it

La conversione di un tipo di dati datetime2 in un tipo di dati datetime ha provocato un out-of-range?

Sto lavorando su un'applicazione contiene un datepicker e se imposto il tempo in quel picker su un valore molto vecchio o molto lontano nel futuro quando provo a salvare questo valore nel database il server lancia questa eccezione, qual è la causa di esso?

La conversione di un tipo di dati datetime2 in un tipo di dati datetime ha comportato un valore fuori intervallo . La dichiarazione è stata chiusa.

31
Geronimo18

DateTimeha intervallo: 1 gennaio 1753, fino al 31 dicembre 9999

DateTime2ha l'intervallo: da 0001-01-01 a 9999-12-31

Quindi se si immette una data prima del 1753 si otterrebbe questo errore quando il campo nella tabella è di tipo DateTime.

66
AnthonyWJones

Entity Framework aggiungerà la data predefinita per il campo di valore {01/01/0001 00:00:00} e questo non rientra nell'intervallo di SQL Date Generation. Quindi, per farlo funzionare, abbiamo bisogno di chiedere a EF di non generare una data di default, possiamo renderlo nullable facendo quanto segue nel modello di quella classe.

In questo caso viene generato un valore predefinito per il campo LastLoggedIn da EntityFramework. Se questo campo nella base di date può assumere valore nullo, implica che possiamo renderlo nullable eseguendo il follwoing nel modello

 [Display(Name = "LastLoggedIn")]
        public DateTime? LastLoggedIn { get; set; }
23
Hari Gillala
Products prd = new Products();            
prd.CreatedDate = DateTime.Now;

Puoi aggiungere come sopra

3
Alparslan ŞEN

Questo errore può anche essere causato dall'errata ortografia del nome del campo nell'elenco di bind di un'azione del controller. Nella mia situazione, la data era predefinita a una data fuori intervallo poiché il campo della data non era associato come pensavo.

0
Kevin Francis