Ich lese von einer externen SQL DB ein Datetime Feld und schreibe es in meine Datenbank:
Adressen.Sync_ModifyDate=WWSADRESSE.WWSMODIFYDATE
Prüfe ich hier mit dem Debugger steht im Feld Adressen.Sync_ModifyDate der richtige Wert der Millisekunden. Nach dem Save via HModify(Adressen) werden die Millisekunden einfach auf die nächste Zehntelsekunde aufgerundet.
Aus
20181008195911507 wird einfach
20181008195912000
Beide Felder sind in der MS SQL Datenbank als Datetime definiert.
Hat da jemand eine Idee?
SQL Milliseconds verschwinden....
-
- Site Admin
- Beiträge: 531
- Registriert: 23. Februar 2010, 08:06
- Wohnort: Langenthal, Schweiz
- Kontaktdaten:
Re: SQL Milliseconds verschwinden....
Schwierig.
Was ist, wenn der Datentyp in der SQL Tabelle auf DateTime2 gesetzt wird? Wird empfohlen seit Server 2008
In einem französischen Forum gefunden sollt man andernfalls konvertieren.
"CONVERT(DATETIME, '"+DateToString(VariableDate, "AAAAMMJJ") + " " + TimeToString(VariableHour, "HH:MM:SS.CC") +"', 121)"
Was ist, wenn der Datentyp in der SQL Tabelle auf DateTime2 gesetzt wird? Wird empfohlen seit Server 2008
In einem französischen Forum gefunden sollt man andernfalls konvertieren.
"CONVERT(DATETIME, '"+DateToString(VariableDate, "AAAAMMJJ") + " " + TimeToString(VariableHour, "HH:MM:SS.CC") +"', 121)"
-
- Senior Member
- Beiträge: 312
- Registriert: 24. September 2015, 10:05
- Wohnort: Biberbach, Austria
- Kontaktdaten:
Re: SQL Milliseconds verschwinden....
Danke für die Tipps, werde es in den nächsten Tagen mal austesten.
Jaja, Windev und französisch... Aber wir haben ja, Gott sei Dank, dich lieber Herbert!
Jaja, Windev und französisch... Aber wir haben ja, Gott sei Dank, dich lieber Herbert!
-
- Senior Member
- Beiträge: 312
- Registriert: 24. September 2015, 10:05
- Wohnort: Biberbach, Austria
- Kontaktdaten:
Re: SQL Milliseconds verschwinden....
Das checke ich leider nicht. Mit convert() ist hier die MS SQL Funktion gemeint. Wie soll ich das in Windev machen?
Ich weise einfach im Programm mit
Adressen.meindatum=myDateTime
einem Tabellenfeld einen Wert zu. An dieser Stelle kann ich kein convert() vom SQL Server verwenden, wüsste nicht wie.
Mit einem SQL Statement aus Windev klappt es auch nicht:
Code: Alles auswählen
UPDATE
Adressen
SET
Typ = 256,
Name1 = {ParamName1},
LagerkundeJN = '1',
Sync_TPSSyncDate = {ParamSync_TPSSyncDate}
WHERE _ID=1
Das mit dem Datentype datetime2 teste ich noch.
-
- Senior Member
- Beiträge: 312
- Registriert: 24. September 2015, 10:05
- Wohnort: Biberbach, Austria
- Kontaktdaten:
Re: SQL Milliseconds verschwinden....
Standard DateTime Feld:
SyncWerk.Sync_TPSSyncDate = "20171231 19:06:36.123"
Millisekunden werden abgeschnitten, Zuweisung von einem Datumsfeld funktioniert
DateTime2 Feld
SyncWerk.TestDate = "20161231 19:06:36.123"
Funktioniert, dafür muss ich hier aber ein Datum in einen String konvertieren, Zuweisung von einem Datumsfeld funktioniert NICHT wenn es ein DateTIme2 Feld ist. Aber mit dieser Variante kann/muss ich leben.
geht auch:
DateTime2 Feld
SyncWerk.TestDate = "20161231 19:06:36.1234567"
SyncWerk.Sync_TPSSyncDate = "20171231 19:06:36.123"
Millisekunden werden abgeschnitten, Zuweisung von einem Datumsfeld funktioniert
DateTime2 Feld
SyncWerk.TestDate = "20161231 19:06:36.123"
Funktioniert, dafür muss ich hier aber ein Datum in einen String konvertieren, Zuweisung von einem Datumsfeld funktioniert NICHT wenn es ein DateTIme2 Feld ist. Aber mit dieser Variante kann/muss ich leben.
geht auch:
DateTime2 Feld
SyncWerk.TestDate = "20161231 19:06:36.1234567"