Frage: Ist es möglich in SQLite die lokale Zeit aus einem UTC Datetime zurückzugeben? Das ist meine Abfrage, nur leider bekomme ich immer nur das UTC Datum als Date zurück.
[SQL]
SELECT %s AS Name,
CAST(strftime(’%%s’,strftime(:interval,datetime(MIN(ExecutionStartDate)/1000,‘unixepoch’,‘localtime’),‘localtime’),‘localtime’) AS INTEGER)*1000 AS Date, %s AS Value
FROM Billingentry WHERE ExecutionStartDate >= :startDate AND ExecutionStartDate < :endDate ;
[/SQL]
Zur Erklärung ich will als Date ein nach einem Pattern generierten Zeitpunkt zurückgeben. Zb. ‘%Y-%m-%d’ für den Platzhalter Intervall, dies hieße dann das nur der Tagesanfänge zurückgegeben würden.
Dies gelingt auch, nur leider sind die UTC Tagesanfänge die also 2h neben der lokalen Zeit liegen die mich interessiert. PS. eine Lösung für eine Zeitzone durch zb: eine Summierung von 2h als Millisekunden wäre für mich keine Lösung.
Und es müsste eine SQL-Lösung sein, da ansonsten die Schnittstelle (Die auch für andere Datenbanken genutzt wird) geändert werden müsste.
Wäre es eigentlich nicht besser eine Spalte extra für die UTC Datetime zu benutzen? Würde nämlich die Konvertierung ersparen und es gäbe auch nach einer Zeitumstellung keinen Zeitsprung.
UTC ist ja anscheinend vorhanden (*) und herauskommen soll eine andere Zeit nach welchen Kriterien?
woher soll die DB wissen welche Zeitzone gewünscht ist?
auch wenn ‘andere Datenbanken zugreifen’, also vielleicht nicht auf User-Session zu verlassen?
(*)
wobei der erste Satz danach klingt:“Ist es möglich in SQLite die lokale Zeit aus einem UTC Datetime zurückzugeben?”
später in der Tat andersrum: “Dies gelingt auch, nur leider sind die UTC Tagesanfänge die also 2h neben der lokalen Zeit liegen die mich interessiert.”
und gerechnet wird auch schon irgendwas, verwirrend
welche Daten sind schon da, wieso wird gerechnet, erfolgreich oder nicht?,
wenn erfolgreich Zeit geändert, reicht das dann noch nicht?
Lösung:
Ich habe die Zeit als UTC gespeichert und hätte die lokale Zeit für eine Berechnung benötigt im Statement benötigt, meine Lösung ist dass ich dem Statement die Differenz zwischen Datenbank(UTC)- und Client-Zeit übergebe. Damit kann ich die Berechnung verwirklichen.