jq 日期操作协助

jq date manipulation assistance

我有一个 mysql 日期字段,名为 "dateFound"。

dateFound       | date         | YES  |     | NULL              |                             |

我创建了一个非常基本的 python API,它可以从 MySQL 中提取所有数据并通过 json 提供。在这个过程中,它似乎正在将 YYYY-MM-DD 转换为 YYYY-MM-DD 00:00:00

mysql> select dateFound from db where item = 111222;
+------------+
| dateFound  |
+------------+
| 2017-11-12 |
+------------+

但在 json 输出中是:

dateFound   "Sun, 12 Nov 2017 00:00:00 GMT"

我试图找出如何通过 jq 将其转换回 YYYY-MM-DD,但我确实找不到它。

jq -r '["Date Found"], ["-------------"], (.Data[] | [.dateFound]) |  @tsv ' <<<$Report

是我正在进行的转换的基本近似值(减去所有其他字段),它确实为我提供了我需要的所有数据。这只是我无法返回 YYYY-MM-DD 的日期格式。

我尝试使用定义的格式将管道插入到 strptime 中,但这显然不是正确的语法。寻找指向我所缺少的东西的指针。我原以为对提取的数据进行日期操作会比这更容易,或者我遗漏了一些非常明显的东西。

感谢任何帮助。

  1. 您可以在适当截断字符串后使用内置过滤器 strptime/1 - 请参阅有关标准 C 库函数的任何文档,例如 http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html

例如:

 sub(" [A-Z]+$";"")
 | strptime("%a, %d %b %Y %T")
 | mktime
 | strftime("%Y-%m-%d")
  1. 从源头上解决问题可能会更简单更好,即在您的 Python 程序中。