2016-04-06 2 views
1

Ich habe eine SQL-Ausgabe, die mit verschiedenen Feldern kommt. Ein paar dieser Felder sind Daten und ich möchte sie in Zeitstempel konvertieren. Hier ist, wie die Ausgabe der Daten aus, als sie aus der Datenbank kommt:Konvertieren Sie eine SQL-Zeichenfolge Ausgabe in Zeitstempel mit C#

4/6/2016 9:00:00 PM 

Und wenn umgewandelt JSON es wie folgt aussieht:

opening_date":"4/6/2016 9:00:00 PM" 

Ich habe versucht, die im Anschluss an die SQL-Anfrage Ausgabe zu konvertieren

meeting_start_date = DateTime.ParseExact((string)((object[])((ArrayList)results)[i])[3].ToString(), "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture) 

nach, was ich in here gefunden, aber ich bekomme die folgenden Fehler

kann nicht implizit Typen ‚System.DateTime‘ zu ‚string‘

ist es etwas falsch mit, wie ich die Funktion verwenden, oder gibt es einen besseren Weg, um die Umwandlung von der SQL-Ausgabe zu Zeitstempel umwandeln zu machen so kann es zum json-Ausgang hinzugefügt werden.

+0

Sind 'meeting_start_date' eine Zeichenfolge? Was genau ist die Art der Ergebnisse? – wimh

+0

@Wimmel das 'meeting_start_date' sollte eine Zeichenkette sein, aber es ist ursprünglich eine' datetime' in sql – Tavo

+0

Wenn Sie eine Zeichenkette benötigen, warum konvertieren Sie sie zuerst in eine DateTime? Die Ausgabe aus der Datenbank sieht identisch mit dem Format aus, das Sie in JSON benötigen. – wimh

Antwort

0

Was Sie tun müssen, um diesen Fehler zu beheben, ist nach dem Analysieren Ihrer DateTime, beenden Sie es mit einem ToString(). Dies ermöglicht es Ihnen, den Wert in ein String-Variable zuweisen, wie so

meeting_start_date = DateTime.ParseExact((string)((object[])((ArrayList)results)[i])[3].ToString(), "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture).ToString(); 

Als Randbemerkung, in diesem Teil (string)((object[])((ArrayList)results)[i])[3].ToString() Sie den Wert als String selbst werfen, obwohl Sie ToString() darauf verwendeten bereits