2017-01-23 11 views
1

Ich arbeite an C# SQL.C# Datetime Problem zu Sql

Ich habe ein Datetime-Wert "1/10/2016 12:00:00 AM" für zB

Datetime dt="1/10/2016 12:00:00 AM" 

Als ich diesen Wert übergeben gespeicherte Prozedur als Parameter SQL, es zu 10 Jan 2016 geändert

ich das Ergebnis als 1 OCT 2016 in SQL benötigen. Gespeicherter Sql-Prozedur-Parameter-Datentyp ist Datetime.

Vielen Dank

+0

können Sie den Code anzeigen. Wie speichern Sie es in 'dt' und wie das SQLParameter aussieht wie –

+4

Sounds Sie übergeben es als Zeichenfolge, sollten Sie es als Datetime übergeben – HoneyBadger

+0

Bitte werfen Sie einen Blick auf diese [Frage] (http://stackoverflow.com/ Fragen/2191120/net-datetime-zu-sqldatetime-Konvertierung). –

Antwort

0

Verwenden Parameter die Werte in SQL-Abfrage zu übergeben. Oder nutzen Sie myDateTime.ToString("s"); diese für Datetime-Wert

„s“ - Standard datetime-Format

1

Ändern Sie den Datetime-Wert und sehen, was passiert ist. Wenn immer noch der 10. Januar 2016, dann kann es Änderungen sein, dass die gespeicherte Prozedur den Standardwert, der Speicherwert ist 10 Jan 2016 ist.

+0

Das ist ein guter Kommentar, aber eine schlechte Antwort. –

+0

Ich kenne Zohar Peled. Aber gemäß den Stackoverflow-Regeln können wir keinen Kommentar abgeben, wenn wir unter 50 Reputation sind. Also für dieses Limit möchte ich als Antwort keinen Kommentar abgeben. –

0

Nun, sind Sie sicher, dass der Wert in C# tatsächlich ist 1 OCT 2016 und nicht 10 Jan 2016?
Die Folge:

Datetime dt = "1/10/2016 12:00:00 AM"; 

nicht einmal kompilieren.

Best practice DateTime Werte zwischen C# und SQL Server für das Bestehen wird mit SQL-Parameter vom Typ DateTime oder DateTime2 und Leiten Sie eine Instanz der DateTime Struktur.
Wenn Sie dies tun, werden die DateTime-Werte garantiert korrekt übergeben.