2015-08-06 7 views
0

У меня есть следующий запрос:Сравнение дат в PostgreSQL

SELECT array_to_string(array(SELECT birthday from users where userid>10), ',') as birthdaylist 

Это генерировать, например, следующие данные:

birthdaylist 
text 
"2015-08-02,2015-08-09" 

То, что я хочу, чтобы получить этот результат:

("02/Aug/2015","09/Aug/2015") 

Я прочитал руководство postgresql http://www.postgresql.org/docs/8.2/static/functions-formatting.html Я вижу, что есть функция to_date('05 Dec 2000', 'DD Mon YYYY'), но это действительно не помогает моему c аза.

Я пробовал:

Select Array (SELECT birthday from users where userid>10) 

Этот запрос дал мне массив, но это не текстовый массив его: date[] Как я получить ("02/Aug/2015","09/Aug/2015")?

+0

Функция 'to_char' указана на той же странице документации –

ответ

3

Вы нарушаете свой запрос. Вам не нужен вложенный подвыбор. Просто выполняйте регулярную агрегацию с нужным вам форматом.

select string_agg(to_char(birthday, 'DD Mon YYYY'), ',') 
from users 
where userid > 10; 

Btw: вы не должны прочитать руководство по совершенно устаревшей версии (8.2). Всегда используйте руководство для используемой версии.