在 bash 脚本中使用 SQLite3 转换存储在数据库中的 UNIXEPOCH 时间戳

Converting a UNIXEPOCH timestamp stored in a database using SQLite3 in a bash script

我有一个 sqlite3 查询

SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') as Date FROM history

当我在 dbbrowser 中打开数据库时,( https://sqlitebrowser.org/ ) 查询 运行 没问题。

我现在尝试 运行 bash 脚本中的命令。

echo 'SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') as Date FROM history' | sqlite3 database.db

结果是一个错误,指出 没有这样的列 unixepoch

我也试过了

echo 'SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') FROM history' | sqlite3 database.db

我查看了 sqlite3 手册页,但看不到 datetime 的任何用法。

运行

echo 'SELECT start_time FROM history' | sqlite3 database.db

将return 13位unix纪元值ie:1586107737232

echo 'SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') as Date FROM history' | sqlite3 database.db
# ...^..........................................^.........^......................^

这是一个引用错误:您不能在单引号字符串中嵌入单引号。 "unixepoch" 周围的 "inner" 引号被删除。

这样做

echo "SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') as Date FROM history" | sqlite3 database.db
# ...^..........................................^.........^......................^