在视图中,我正在投射一个没有时区的时间戳。
在我看来,其中任何一种都应该起作用:
Cast("Orders"."OrderDate" as Date),
Date("Orders"."OrderDate"),
"Orders"."OrderDate"::Date,
但是他们都给出了错误
cannot change data type of view column "OrderDate" from timestamp without time zone to date
Postgres 11
pgAdmin 4.9
答案 0 :(得分:0)
SELECT vendor, day, item_category, Sum(amount), Sum(revenue) FROM (SELECT mytable.*, CASE item WHEN 'Apple' THEN 'Fruit' WHEN 'Orange' THEN 'Fruit' WHEN 'Peach' THEN 'Fruit' WHEN 'Lettuce' THEN 'Vegetable' WHEN 'Spinach' THEN 'Vegetable' WHEN 'Cabbage' THEN 'Vegetable' END AS item_category FROM mytable) AS x GROUP BY vendor, day, item, item_category;
| date_trunc | | :--------------------- | | 2019-08-31 00:00:00+01 |
select date_trunc('day', now());
| date_trunc | | :--------- | | 2019-08-31 |
db <>提琴here
答案 1 :(得分:0)
您无法更改视图中列的类型。您将需要将该视图以及所有依赖于该视图的对象删除,然后重新创建它们。