Ho un oggetto datetime in C# e voglio inserire un inserto nel campo datetime di SQL Server. Qual è il formato corretto per questo?qual è il modo corretto di formattare un datetime nel campo datetime del server SQL
risposta
Il modo corretto per eseguire questa operazione è utilizzando una query con parametri, non formattazione del testo. Quindi puoi semplicemente usare un parametro SqlDbType.DateTime
fortemente tipizzato.
(Se è assolutamente necessario utilizzare la formattazione del testo per fare questo - e lo consiglio vivamente contro di essa -. Poi qualcosa come yyyyMMdd HH:mm:ss
dovrebbe fare il trucco)
non passarei ancora una stringa nella query parametrizzata e avrò lo stesso problema? – leora
In realtà, il formato che è garantito per funzionare su qualsiasi server SQL indipendentemente dalla lingua e dalle impostazioni internazionali sarebbe 'aaaaMMgg HH: mm: ss' (senza i trattini - quelli hanno causato problemi in determinate impostazioni della lingua) –
@marc_s: Ho aggiornato la risposta per utilizzare il formato sicuro in tutte le circostanze. – LukeH
uso SET DATEFORMAT
un campione took from here
SET NOCOUNT ON
CREATE TABLE X(EXAMPLE INT, D SMALLDATETIME)
-- EXAMPLE 1
SET DATEFORMAT MDY
INSERT INTO X VALUES (1, '10/30/56')
-- EXAMPLE 2
SET DATEFORMAT YDM
INSERT INTO X VALUES (2, '56/31/10')
-- EXAMPLE 3
SET DATEFORMAT YMD
INSERT INTO X VALUES (3, '56/10/31')
SELECT * FROM X
Per espandere la risposta di @ Luke mi sono imbattuto in questo bug solo l'altro giorno.
Il formato yyyy-MM-dd HH:mm:ss
ha un problema locale/lingua su SQL Server 2005 (un esempio è il francese), ma è fissato in SQL 2008:
Quindi, non utilizzare questo formato: yyyy-MM-dd HH:mm:ss
(separati da uno spazio).
Use Only: yyyy-MM-ddTHH:mm:ss
("T" separatore) o yyyyMMdd HH:mm:ss
(senza delimitatori trattino)
importante se si sta generando gli script che includono datetime
costanti.
- 1. SQL Server: aggiungere secondi a un campo datetime?
- 2. Query SQL Server Server - Conta campo DateTime distinto
- 3. Come formattare datetime come M/D/YYYY in SQL Server?
- 4. Come convertire un Datetime .Net in un datetime T-SQL
- 5. Il lavoro di Nullable DateTime è corretto?
- 6. Come formattare dateTime nel template django?
- 7. SQL Server converte stringa in datetime
- 8. Formattare il valore datetime in Yii 2
- 9. Come formattare un datetime in modo che Excel lo capisca?
- 10. MySQL: inserire datetime in un altro campo datetime
- 11. Formato DateTime corretto per un servizio Web
- 12. Tempo parte di un campo DateTime in SQL
- 13. Qual è il modo ottimale per confrontare le date nel server Microsoft SQL?
- 14. Converti millisecondi UTC in DATETIME nel server SQL
- 15. Ottenere un singolo record da SQL Server nel modo corretto
- 16. Impostazione SQL Server 2008 Variabile DateTime
- 17. C'è qualche differenza tra DateTime in C# e DateTime nel server SQL?
- 18. SQL Server 2005 - Verifica valore DateTime nullo
- 19. SQL Server millisecondi Remove from datetime
- 20. Confrontando parità di data e datetime in SQL Server
- 21. datetime to totalminute in sql
- 22. SQL Server Converti Varchar in Datetime
- 23. Qual è il formato corretto per creare un'istanza DateTime PHP di '2016.04.30 PM 7:30' tramite DateTime :: createFromFormat?
- 24. Come formattare DateTime su 24 ore?
- 25. Ormlite non associa Datetime da SQL Server a C#?
- 26. Imposta il valore predefinito sul campo Datetime nel modulo symfony2
- 27. Come si aggiorna un campo DateTime in T-SQL?
- 28. Come formattare le colonne DateTime in DataGridView?
- 29. conversione di datetime campo di stringa nel Django queryset.values_list()
- 30. Imposta valore predefinito in EF datetime datetime
Probabilmente non dovrebbe essere la costruzione fino stringhe SQL nel codice. Invece si dovrebbe guardare usando i proc memorizzati, le query parametrizzate o un ORM. Ognuno di questi risolverebbe il tuo problema con la formattazione mentre passi l'oggetto, non devi fare alcuna formattazione di stringhe. –