sqlite understanding date datatype [duplicate]
Could you help me convert UNIX epoch time into format yyyy-mm-dd hh:mm:ss
(24h) in SQLite? (GMT+7 would be appreciated).
Example: from 1319017136629
to Wednesday, October 19, 2011 4:38:56 PM GMT+7
.
p/s: Just looked around and found a solution:
SELECT datetime(1319017136629, 'unixepoch', 'localtime');
But i am still looking for a way to batch convert UNIX epoch time in SQLite.
To change the values in the database, use the UPDATE
command:
UPDATE MyTable SET MyColumn = datetime(MyColumn, 'unixepoch', 'localtime')
1319017136629
is a value in milliseconds
, which is not UNIX
epoch time;
therefore it has to be divided by 1000
and rounded to integer seconds
; only then DATE()
and DATETIME()
will convert.
SELECT DATETIME(ROUND(dateColumn / 1000), 'unixepoch') AS isodate FROM tableName
Converting database values to localtime
is unfortunate; conversion on output is less problematic.
The Y2038 problem might already be worth a consideration.