迄今为止的 Postgres 字符串示例 10Apr77 到 10/04/1977

2024-01-10

大家下午好,

我对 PostgreSQL 相当陌生,所以如果我的问题低于平均水平,请提前道歉。

我收到了一些 csv flay 文件格式的数据,并且很好地插入到临时表中,以便我预览数据。我遇到的问题之一是数据字段存储为字符串值。例如,96 年 4 月 10 日 - 85 年 1 月 1 日

我编写了下面的查询,看看是否可以将字符串分解并以日期格式连接在一起。

有没有更简单的方法来实现我正在做的事情?

select 
concat(cast(substring(datetext,1,2) as varchar(2)),'/',case 
when cast(substring(datetext,3,3) as varchar(3)) = 'Jan' then '01'
when cast(substring(datetext,3,3) as varchar(3)) = 'Feb' then '02'
when cast(substring(datetext,3,3) as varchar(3)) = 'Mar' then '03'
when cast(substring(datetext,3,3) as varchar(3)) = 'Apr' then '04'
when cast(substring(datetext,3,3) as varchar(3)) = 'May' then '05'
when cast(substring(datetext,3,3) as varchar(3)) = 'Jun' then '06'
when cast(substring(datetext,3,3) as varchar(3)) = 'Jul' then '07'
when cast(substring(datetext,3,3) as varchar(3)) = 'Aug' then '08'
when cast(substring(datetext,3,3) as varchar(3)) = 'Sep' then '09'
when cast(substring(datetext,3,3) as varchar(3)) = 'Oct' then '10'
when cast(substring(datetext,3,3) as varchar(3)) = 'Nov' then '11'
when cast(substring(datetext,3,3) as varchar(3)) = 'Dec' then '12'
end,'/',cast(substring(datetext,6,2) as varchar(2))) as dt
from tbl_loading_horses_tmp

您可以使用the to_date()功能 http://www.postgresql.org/docs/current/static/functions-formatting.html,它采用如何解释输入的格式字符串并返回datevalue 这是您应该存储在数据库中的值。



SELECT to_date('10Apr96', 'DDMonYY');
  to_date   
------------
 1996-04-10
(1 row)
  

要在检索时将其转换回不同格式的字符串以进行显示,请使用to_char()函数记录在同一页上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迄今为止的 Postgres 字符串示例 10Apr77 到 10/04/1977 的相关文章

随机推荐