我必须在SQLite中将UNIX时间戳格式化为人类可读的格式。我的Unix日期列名为ERDAT,我想从我正在使用的列中提取最大日期:
SELECT MAX(strftime('%d - %m - %Y ', datetime(ERDAT, 'unixepoch'))) as max_date FROM table
该表如下所示:
BANFN BSART ERDAT clean_date
0000000000 A6 1528236000000
0000000000 AB 1546470000000
0000000000 A6 1505080800000
0000000000 A6 1505080800000
0000000000 A6 1507068000000
我需要具有从ERDAT列派生的清理日期列,该列是unix时间戳格式,并且具有以下格式的值:DD:MM:YYYY HH:MM:SS
我得到的输出为null,我应该在其中看到一个日期。我应该如何获得预期的结果?
最佳答案
您的Unix时间戳记包含毫秒,因此请使用以下命令:
select
strftime(
'%d - %m - %Y',
max(datetime(ERDAT / 1000, 'unixepoch', 'localtime'))
) as maxdate
from tablename
您想要的格式
%d - %m - %Y
不可比较。因此,您必须首先获取最长日期,然后再应用此格式。请参见demo。
结果:
| maxdate |
| --------------- |
| 02 - 01 - 2019 |
关于sqlite - sqlite中的时间戳格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59141242/