Dzień dobry wszystkim,Postgres String na bieżąco PRZYKŁAD 10Apr77 do 10/04/1977
Jestem całkiem nowy, PostgreSQL, więc przeprosiny z wyprzedzeniem, jeśli moje pytanie jest poniżej średniej.
Otrzymuję niektóre dane w formacie pliku fsv csv i ładnie wstawiam się do stołu pomostowego, aby wyświetlić podgląd danych. Jedną z rzeczy, z którymi mam problem jest to, że pole danych jest przechowywane jako wartość ciągu. Na przykład: 10Apr96 - 01Jan85
Napisałem poniższe zapytanie, aby sprawdzić, czy można przerwać ciąg znaków i połączyć je ponownie w formacie daty.
Czy jest łatwiejszy sposób osiągnięcia tego, co robię?
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
Dziękujemy za wyświetlenie kodu, którego używasz i niektórych danych, których dotyczy. W przyszłości dobrze jest również wspomnieć o swojej wersji PostgreSQL, ale dzięki za wysiłek wyjaśnienia się wyraźnie +1. –