Format des Timestaps

Alles rund um den Report Designer in ACMP
Antworten
FlorianMüller
Beiträge: 1
Registriert: Fr Feb 22, 2019 9:25 am

Hallo,
ich erstelle gerade einen Report der die abgearbeiteten Tickets in einem Zeitraum anzeigen soll.
Ich nutze eine erweiterte Abfrage mit Assistent.
Allerdings kann ich mit dem Zeitformat mit dem die Spalte "LastModified" in der Datenbank abgespeichert ist nichts anfangen. z.B. 43417,4823451282
Also meine Frage: Wie kann ich die Zeit auslesen bzw. wie ist das Format aufgebaut?

Mit Freundlichen Grüßen
Florian Müller
FBiehn
Beiträge: 97
Registriert: Do Apr 22, 2010 10:38 am

Das Datetime Format ist das COM Format. Der Ganzahl-Wert gibt die Tage seit dem 30.12.1899, der Nachkomma-Wert gibt die Uhrzeit wieder.
SQL besitzt ein ähnliches Format, allerdings ist dort der Startwert 01.01.1900. Wenn man jetzt die Anzahl Tage des COM Formats im SQL Format nutzen will, muss man die Zahl um 2 verringern (weil bei COM 2 Tage mehr vergangen sind). Andersrum: Wenn man ein SQL Datetime (wie GetDate()) in ACMP nutzen möchte, muss man +2 rechnen.
Mit folgendem Script kann man dies in das SQL DateTime umwandeln:

declare @date float = 43417.4823451282;
declare @now datetime = GetDate();
select
"ACMP float" = @date
, "ACMP float als SQL DateTime" = convert(datetime, (@date - 2))
, "SQL DateTime" = @now
, "SQL DateTime als ACMP float" = convert(float, (@now + 2))

Interessanter Hintergrund zu diesem Format kann man u.a. auf dailywtf nachlesen
Antworten