如何将时间戳转换为日期

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】:
select date_trunc('day', now());
|日期截断 | | :--------------------- | | 2019-08-31 00:00:00+01 |
select date_trunc('day', now())::date;
|日期截断 | | :--------- | | 2019-08-31 |

db小提琴here

【讨论】:

我得到的结果与您对第一个查询的结果相同。修剪时间,只返回日期。 但是第二个查询返回与其他方法相同的错误。无法转换为日期 什么版本的 postgres?如您所见,它对我有用(单击答案中的“此处”),这是一个现场演示。 & 考虑构建自己的小提琴来复制您面临的问题。

以上是关于如何将时间戳转换为日期的主要内容,如果未能解决你的问题,请参考以下文章

如何将时间戳转换为日期时间?

如何将时间戳转换为日期

如何在雪花中将时间戳转换为日期

如何将 dmesg 时间戳转换为自定义日期格式?

Pandas 如何将时间戳列转换为日期时间? [复制]

如何将一列时间戳转换为日期时间? [复制]