sqlite中的时间戳格式化

Timestamp formatting in sqlite

我必须在 SQLite 中将 UNIX 时间戳格式化为人类可读的格式。我的 Unix 日期列被命名为 ERDAT,我想从我正在使用以下内容的列中提取最大日期:

SELECT MAX(strftime('%d - %m  - %Y ', datetime(ERDAT, 'unixepoch'))) as max_date FROM table 

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 |