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

问题描述 投票:0回答:1

我有一个 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的man页面,没有看到任何关于datetime的用法。

运行

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

将返回13位的unix纪元值,即:1586107737232。

bash sqlite datetime unix-timestamp
1个回答
2
投票
echo 'SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') as Date FROM history' | sqlite3 database.db
# ...^..........................................^.........^......................^

这是一个引号错误:你不能在一个单引号字符串中嵌入单引号。"unixepoch "周围的 "内 "引号被丢弃。

请这样做

echo "SELECT DATETIME(ROUND(start_time / 1000), 'unixepoch') as Date FROM history" | sqlite3 database.db
# ...^..........................................^.........^......................^
© www.soinside.com 2019 - 2024. All rights reserved.