如何将时间戳转换为日期
Posted
技术标签:
【中文标题】如何将时间戳转换为日期【英文标题】:How to cast Timestamp to Date 【发布时间】:2020-01-04 03:20:48 【问题描述】:在一个视图中,我正在投射一个没有时区的时间戳。
在我看来,这些都应该有效:
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
【问题讨论】:
试试上一个问题:***.com/questions/6133107/… 做到了。它推荐了我上面尝试的第二种和第三种方法。这对我不起作用。无法将数据类型更改为日期 您是否要更改现有视图的定义?如果是这样,您将无法更改列的类型。您需要删除视图并重新创建它。 @Jeremy 就是这样。然后您必须关闭所有打开的查询,刷新视图列表,重新打开查询。您可以将此作为答案发布吗? 【参考方案1】:您无法更改视图中列的类型。您需要删除视图以及依赖于该视图的所有对象,然后重新创建它们。
【讨论】:
这就是标准答案都不起作用的原因。【参考方案2】:|日期截断 | | :--------------------- | | 2019-08-31 00:00:00+01 |select date_trunc('day', now());
|日期截断 | | :--------- | | 2019-08-31 |select date_trunc('day', now())::date;
db小提琴here
【讨论】:
我得到的结果与您对第一个查询的结果相同。修剪时间,只返回日期。 但是第二个查询返回与其他方法相同的错误。无法转换为日期 什么版本的 postgres?如您所见,它对我有用(单击答案中的“此处”),这是一个现场演示。 & 考虑构建自己的小提琴来复制您面临的问题。以上是关于如何将时间戳转换为日期的主要内容,如果未能解决你的问题,请参考以下文章