Durante la conversione di .NET DateTime (quando è predefinito (DateTime)) su SqlDateTime devo sempre verificare se la data .NET è compresa tra SqlDateTime.MinValue e SqlDateTime.MaxValue [o] Esiste un buon modo per fare questo.Conversione da DateTime a SqlDateTime per .NET Date
risposta
È possibile che la data potrebbe effettivamente essere al di fuori di tale intervallo? Viene dall'input dell'utente? Se la risposta a una di queste domande è sì, dovresti sempre controllare - altrimenti lascerai la tua applicazione incline all'errore.
È possibile formattare la data per l'inclusione in un'istruzione SQL piuttosto facilmente:
var sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
@ Winston: Sì, la mia data di arrivo può essere nulla prima o poi. – Sreedhar
@Winston: * non * deve * formattare la data come stringa da includere in un'istruzione SQL. Utilizzare invece l'SQL parametrizzato con un parametro fortemente tipizzato. – LukeH
Sono d'accordo con luke. Cosa succede se sei nato negli "utenti" del mese "tavolo", nell'anno "drop"? (Scherzi a parte, fai quello che dice Luca) –
Se si sta verificando per DBNULL, la conversione di un Datetime SQL per un DateTime .NET non dovrebbe essere un problema. Tuttavia, è possibile che si verifichino problemi durante la conversione di un DateTime .NET in un DateTime SQL valido.
SQL Server non riconosce le date precedenti a 1/1/1753. Questo è l'anno in cui l'Inghilterra adottò il calendario gregoriano. Solitamente il controllo di DateTime.MinValue è sufficiente, ma se si sospetta che i dati possano avere anni prima del 18 ° secolo, è necessario effettuare un altro controllo o utilizzare un tipo di dati diverso. (Mi chiedo spesso cosa utilizzano i musei nei loro database)
Il controllo della data massima non è realmente necessario, SQL Server e .NET DateTime hanno entrambi una data massima di 31/12/9999 Potrebbe essere una regola aziendale valida ma non causerà un problema.
Inoltre, ricorda che le risoluzioni [quantum of time] sono diverse.
http://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqldatetime.aspx
SQL uno è 3,33 ms e uno NET è 100 ns.
sulla mia ricerca per fare questo con entitie, mi sono imbattuto qui, semplicemente premendo di nuovo a postare quello che ho scoperto ...
quando si utilizza EF4, colonna datetime "di uno SQL" può essere riempito da .NET's DateTime che utilizza BitConverter.
EntitieObj.thetime = BitConverter.GetBytes(DateTime.Now.ToBinary());
anche il collegamento di Fakrudeen mi ha portato ulteriormente ... grazie.
-Per confrontare solo la parte data, si può fare:
var result = db.query($"SELECT * FROM table WHERE date >= '{fromDate.ToString("yyyy-MM-dd")}' and date <= '{toDate.ToString("yyyy-MM-dd"}'");
- 1. Conversione da DateTime SqlDateTime è imprecisa
- 2. Conversione .NET DateTime a JSON
- 3. Conversione da TimeSpan a DateTime
- 4. conversione da stringa a datetime javascript
- 5. NHibernate non persisterà DateTime SqlDateTime overflow
- 6. Interpretazione di date date UInt64 nella struttura .NET DateTime?
- 7. Conversione da Bigint a valore datetime
- 8. Conversione da String a DateTime in PowerShell
- 9. Conversione da DateTime a stringa in Julia
- 10. Conversione multipagina da TIFF a PNG .Net
- 11. Errore conversione datetime a stringa
- 12. JavaScript timestamp a Python conversione datetime
- 13. Creazione di DATETIME da DATE e TIME
- 14. Converti C# DateTime A Angular Date
- 15. DateTime a JavaScript data
- 16. da unix timestamp a datetime
- 17. conversione di una stringa a datetime da "yyyy-MM-dd"
- 18. Conversione DateTime numero di secondi in VB NET
- 19. Timestamp Unix a .net DateTime
- 20. . DateTime .NET, risoluzione diversa durante la conversione da e verso OADate?
- 21. Conversione da gg/mm/aaa stringa formattata a Datetime
- 22. Conversione UTC DateTime DateTime locale
- 23. Date vs DateTime
- 24. in grado di fornire conversione implicita da DateTime a ordinato tramite conversione implicita a Paragonabile
- 25. DateTime.MinValue e SqlDateTime trabocco
- 26. Conversione stringa di datetime a datetime in NumPy (python)
- 27. Query da convertire da datetime a mysql
- 28. DateTime class vs. native date-functions PHP
- 29. conversione di una stringa a DateTime
- 30. Conversione Datetime selettore per ora UTC
@JohnSaunders: Sì, questo è un pò schizzinosi. – Will