【发布时间】:2017-01-19 22:26:52
【问题描述】:
使用以下查询检索上周数据,但出现错误
Postgres 错误:“CAST”位置或附近的语法错误:127
我不知道错误在哪里:
SELECT count(*), extract(day from createdon) AS period
FROM orders
WHERE servicename =:serviceName AND createdon BETWEEN
CAST(NOW() AS CAST(DATE-EXTRACT(DOW FROM NOW()) AS INTEGER-7)) AND
CAST(NOW() AS CAST(DATE-EXTRACT(DOW from NOW()) AS INTEGER))
GROUP BY extract(day from createdon)
ORDER BY extract(day from createdon);
【问题讨论】:
-
你的 - 7 应该在括号之后,因为现在它正在寻找一个 INTEGER-7 数据类型。
-
我试过了,但还是同样的错误....宝贝
-
Marc 我改变了......但它在位置 127 处显示与“\n”相同的错误
-
CAST(expr1 AS CAST(expr2 AS <type>))肯定是无效的。我什至无法猜测,你试图用它来实现什么。 -
另外:您确定要使用 ANSI SQL 的
DOW概念,而不是ISODOW? (DOW周从星期日开始,ISODOW周从星期一开始:就像date_trunc('week', ...)在 a_horse_with_no_name's anwser 中一样)
标签: sql postgresql