【发布时间】:2021-11-15 14:44:06
【问题描述】:
我正在尝试为我的交易利润制作漂亮的表格视图(在 grafana 中),并按日期对我的交易进行分组。
SELECT
close_date AS "Date",
(SELECT COUNT(*) FROM trades WHERE close_profit > 0 AND c2.close_date = close_date) AS Wins,
(SELECT COUNT(*) FROM trades WHERE close_profit < 0 AND c2.close_date = close_date) AS Losses,
(SELECT AVG(close_profit * 100) FROM trades WHERE c2.close_date = close_date) AS "Avg",
(SELECT SUM(close_profit_abs) FROM trades WHERE c2.close_date = close_date) AS "Profit"
FROM trades c2 WHERE close_date IS NOT NULL GROUP BY close_date
这将创建交易的表格列表,但它不会按日期对交易进行分组,因为原始“close_date”的形式是“2021-09-20 11:11:12.954078 +0000 UTC”。
如何格式化 close_date 以便只有日期 (2021-09-20) 并在连接查询中使用它? 我试过这个:
SELECT
date(close_date) AS "Date",
.....
这会根据我的需要将 close_date 更改为日期,但随后分组将不起作用。
我尝试将每个 close_date 更改为 date(close_date),但随后整个语法中断。
SELECT
date(close_date) AS "Date",
(SELECT COUNT(*) FROM trades WHERE close_profit > 0 AND c2.date(close_date) = date(close_date)) AS Wins,
(SELECT COUNT(*) FROM trades WHERE close_profit < 0 AND c2.date(close_date) = date(close_date)) AS Losses,
(SELECT AVG(close_profit * 100) FROM trades WHERE c2.date(close_date) = date(close_date)) AS "Avg",
(SELECT SUM(close_profit_abs) FROM trades WHERE c2.date(close_date) = date(close_date)) AS "Profit"
FROM trades c2 WHERE date(close_date) IS NOT NULL GROUP BY date(close_date)
问题是:
c2.date(close_date)
如何在此处格式化日期时间?
c2.close_date (2021-09-20 11:11:12.954078 +0000 UTC) -> c2.date(close_date) (2021-09-20) ??
感谢您的帮助。我无论如何都不是 sql 专家,所以我的术语可能“有点偏离”。
【问题讨论】: