2016-03-24 15 views
4

Tarih 'YYYY-AA-GG' metin biçimindedir, şimdi sayısal olarak olması gereken yıl bölümünü ayıklamam gerekiyor. Tek bir adımda yapılmak için bu dönüşüme ihtiyacım var, çünkü yeni değişken oluşturamadığım başka bir uygulamada kullanmam gerekiyor.POSTGRESQL'de DATE'den Yıl Nasıl Ayırılır

TO_DATE (t0.AESTDTC, 'YYYY-AA-GG'), 'YYYY-AA-GG' ile bu tarihe dönüştü, ancak şimdi bu tarihten itibaren yılı tek adımda ayıklamam gerekiyor mu? biri bana yardım edebilir mi?

+0

Tekrarlama olabilir: //stackoverflow.com/questions/4531577/how-to-extract-year-and-month-from-date-in-postgresql) – Eelke

+3

' özü (yıldan itibaren ...) '. http://www.postgresql.org/docs/current/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT Ancak tarihleri ​​* tarih olarak dizeleri saklamalısınız! –

cevap

13

select date_part(`year`, your_column) from your_table; 

veya

select extract(year from your_column) from your_table; 
+0

Kullanıcının dizeyi ilk olarak tarih olarak ataması gerekebilir. –

+0

Özgün tarih sütunu, bu select deyiminin çıktısı ile nasıl güncelleştiririm? – spacedSparking

+0

@spacedSparking, bu durumda TO_DATE() veya TO_TIMESTAMP() içindeki bu işlevleri kullanarak bir tarih dizesi oluşturmanız gerekir. Genellikle güzel yerler değil – flaviodesousa

1

cevaptır deneyin; Ayrıca sql daha yeni sürümünde sadece bu gibi kullanabilirsiniz

select date_part('year', timestamp '2001-02-16 20:38:40') as year, 
     date_part('month', timestamp '2001-02-16 20:38:40') as month, 
     date_part('day', timestamp '2001-02-16 20:38:40') as day, 
     date_part('hour', timestamp '2001-02-16 20:38:40') as hour, 
     date_part('minute', timestamp '2001-02-16 20:38:40') as minute 
0

,

' select year('2001-02-16 20:38:40') as year,' month('2001-02-16 20:38:40') as month, day('2001-02-16 20:38:40') as day, hour('2001-02-16 20:38:40') as hour, minute('2001-02-16 20:38:40') as minute'

[PostgreSQL tarihinden itibaren yıl ve ay ayıklamak nasıl?] (http