Hallo,
in
App::DBBrowser gibt es die Datumsfunktionen EPOCH_TO_DATETIME und UNIX_TIMESTAMP.
Daten:
dt = '1970-01-02 00:00:00'
sec = 86400
tz-offset = + 01:00:00
Für SQLite sehen diesen Funktionen zurzeit so aus:
UNIXEPOCH("dt",'utc','subsec')
82800
DATETIME("sec",'unixepoch','localtime')
1970-01-02 01:00:00
Ist das gut so, oder sollte die Zeitzone nicht berücksichtigt werden:
UNIXEPOCH("dt",'subsec')
86400
DATETIME("sec",'unixepoch')
1970-01-02 00:00:00
Die anderen Datenbankarten:
(Nachkomma-Nullen wo vorhanden weggelassen)
MySQL/MariaDB:
UNIX_TIMESTAMP(`sec`)
82800
FROM_UNIXTIME(`Seconds`)
1970-01-02 01:00:00
PostgreSQL:
EXTRACT(EPOCH FROM "dt"::timestamp with time zone)
82800
TO_TIMESTAMP("sec"::bigint)::timestamp
1970-01-02 01:00:00
Firebird:
DATEDIFF(MILLISECOND,TIMESTAMP '1970-01-01 00:00:00',"dt") * 0.001
86400
SUBSTRING(CAST(DATEADD(SECOND,CAST("sec" AS BIGINT),TIMESTAMP '1970-01-01 00:00:00') AS VARCHAR(24)) FROM 1 FOR 19)
1970-01-02 00:00:00
DB2
EXTRACT(EPOCH FROM "dt")
86400
TIMESTAMP('1970-01-01 00:00:00',0) + "sec" SECONDS
1970-01-02 00:00:00
Informix:
---
DBINFO('utc_to_datetime',"sec"/1)
1970-01-02 01:00:00
Oracle:
TRUNC(("dt" - date '1970-01-01') * 86400)
86400
TO_CHAR(TO_TIMESTAMP('19700101000000','YYYYMMDDHH24MISS')+NUMTODSINTERVAL("sec",'SECOND'),'YYYY-MM-DD HH24:MI:SS')
1970-01-02 00:00:00