您好我有一个BigINT列,其值为ex:20140130。这需要使用PostgreSQL转换为日期列2014/01/30格式yyyy / MM / dd
请告诉我们如何做到这一点?
答案 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价值。