从时间戳列中删除时间部分

时间:2016-12-15 16:22:27

标签: sql postgresql types

我需要专家的帮助。我有一个数据类型timestamp的“Actual_Date”列。它的格式为:

yyyy - mm - dd 00:00:00 

我想将列转换为以下格式:

mm - dd - yyyy 

如何转换日期?

2 个答案:

答案 0 :(得分:1)

您只需要使用to_char()

按照您希望的方式对其进行格式化
select to_char("Actual_Date", 'mm-dd-yyyy')
from the_table;

手册中的更多细节:
https://www.postgresql.org/docs/current/static/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE

答案 1 :(得分:1)

确切的数据类型很重要。如果您有timestamp列(timestamp without time zone)并希望日期部分为date,则只需投放:

SELECT my_timestamp::date;

您可以对timestamptztimestamp with time zone)执行相同操作,但结果日期取决于当前会话的时区设置。目前的“约会”取决于你问世界的哪个地方......

或者您可以使用to_char()之类的text来获得datestyle作为结果。

如果仅仅是显示日期和时间戳的方式,请查看text设置:

为了获得可靠的to_char()表示,与设置无关,AdornerDecorator是安全的选择。