在PostgreSQL中将Bigint转换为Date

时间:2014-08-18 20:30:38

标签: bigint

您好我有一个BigINT列,其值为ex:20140130。这需要使用PostgreSQL转换为日期列2014/01/30格式yyyy / MM / dd

请告诉我们如何做到这一点?

1 个答案:

答案 0 :(得分:1)

将值转换为字符串,然后使用to_date()函数:

select to_date(20140130::text, 'yyyymmdd');

有关手册中to_date()函数的更多详细信息:
http://www.postgresql.org/docs/current/static/functions-formatting.html

有关手册中铸造值的更多信息:
http://www.postgresql.org/docs/current/static/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS

  

转换为日期列...格式yyyy / MM / dd

date 有"格式"。您看到应用于date(或timestamp)列的任何格式都由客户端应用程序完成(例如psql或任何其他SQL客户端)。

to_date()函数的结果是date,可以使用to_char()函数将其格式化为您喜欢的任何显示。

select to_char(to_date(20140130::text, 'yyyymmdd'), 'dd.mm.yyyy');
select to_char(to_date(20140130::text, 'yyyymmdd'), 'yyyy/mm/dd');

但格式化日期最好留给前端,不应该在SQL中完成。

您还应该认真考虑修复您的表格设计并使用正确的date日期列而不是"编码的" bigint价值。