2017-05-03 2 views
0

Benötigen Sie Hilfe beim Konvertieren eines Varchar-Felds in einen Zeitstempel.Konvertieren eines Varchar-Felds in ein Datumsfeld

Das Feld ist im Format von '5/2/2017 9:45:29 AM' so MM/DD/YYYY HH:MI:SS AM

Ich habe in der Lage das Jahr, den Monat und den Tag zu bekommen, aber nicht die Stunde, Minute und Sekunde erhalten. Dies ist, was ich getan habe:

SELECT 
    '5/2/2017 9:45:29 AM' as data 
    , to_date('5/2/2017 9:45:29 AM', 'MM/DD/YYYY HH24:MI:SS') 
    , to_char(to_date('5/2/2017 9:45:29 AM', 'MM/DD/YYYY HH12:MI:SS PM'), 'YYYYMMDD') 

Das zurückgibt:

data    | to_date    | to_char 
------------------------------------------------------------ 
5/2/2017 9:45:29 AM | 2017-05-02 00:00:00 | 20170502 

Ich habe um mit der to_date Funktion gespielt, kann aber nichts bekommen zu arbeiten. Ich hatte auch AM, aber das tat nichts. Nicht sicher, was sonst an dieser Stelle versuchen

+0

'select cast ('5/2/2017 9:45:29 'als Zeitstempel'? .. –

Antwort

2

zu Zeitstempel:

t=# select cast('5/2/2017 9:45:29 AM' as timestamp); 
     timestamp 
--------------------- 
2017-05-02 09:45:29 
(1 row) 

und Sie können es gegossen zu und warf dann zu Zeit:

t=# with t as (
    with v as (
    select '5/2/2017 9:45:29 AM'::text v 
) 
    select v::timestamp t 
    from v 
) 
select t::date to_date, t::time to_time, t to_timestamp 
from t; 
    to_date | to_time | to_timestamp 
------------+----------+--------------------- 
2017-05-02 | 09:45:29 | 2017-05-02 09:45:29 
(1 row) 
+0

Perfekt - Ich hätte nie gedacht, zuerst den Zeitstempel zu setzen. – simplycoding

Verwandte Themen