Ich stoße auf ein Problem und weiß im Moment nicht, wie ich es lösen kann. Hier ist es also, ich habe eine Datumsspalte in der Datenbank wie folgt:
Wenn ich mit der folgenden Abfrage nachschaue:
Code: Select all
select TO_CHAR(m.START_DATE, 'HH24:MI:SS') START_DATE from UserDetails m;
Es gibt Folgendes zurück:
Das bedeutet, dass es keinen Zeitteil gibt. Wir haben ein bestehendes WPF-Projekt, das die Daten zusammen mit dem Datum wie folgt abruft: Dies ist ein SOAP-Dienst, der an das WPF-Projekt übergeben wird
SOAP-Dienst:
Code: Select all
DataSet tempDataSet = new DataSet();
using (OracleDataAdapter adapter = new OracleDataAdapter(cmd))
{
adapter.ReturnProviderSpecificTypes = false;
adapter.Fill(tempDataSet);
}
tempDataSet.Tables[0].Rows[0]["START_DATE"];
Im WPF-Projekt sind die Daten ohne Konvertierung wie folgt vorhanden:
Code: Select all
DataTable table = SRO.FindData(LoginData.Ticket, LoginData.Session, LoginData.ActAsRoleId, Where);
Wenn das Datum in das WPF-Projekt eingeht und der Clientcomputer die UTC-5-Zeitzone hat, wird das Datum wie folgt konvertiert:
Das bedeutet, dass das in der Datenbank gespeicherte Datum in die Systemzeitzone konvertiert wird. Ich bin mir nicht sicher, warum das passiert. Ich habe versucht, das Datum in einen String zu konvertieren, um das Datum zu erzwingen (es kann nicht konvertiert werden, da es sich um einen DateTime-Typ handelt) und um zu erzwingen, dass das Datum aus DateTime weggelassen wird. Code>. Aber nichts hindert es daran, in die Systemzeitzone zu gelangen. Gibt es eine Möglichkeit, dieses Problem zu lösen, da ich keine Änderungen am WPF-Projekt vornehmen kann und es daher vorziehe, dies über die
SOAP-Dienste selbst zu erledigen?
< strong>Update 1: So wird die DateTime von der Prozedur zurückgegeben.
[img]
https://i. sstatic.net/GPrNNuIQ.png[/img]