2016-06-05 2 views
0

Я создаю карту в CartoDB, которая использует Postgres. Я просто пытаюсь показать свои даты как: 10-16-2014, но не смог, потому что Postgres включает ненужную метку времени в каждом столбце даты.Дата публикации postgres

Должен ли я изменить столбец, чтобы удалить временную метку, или это просто вопрос (правильный) запрос SELECT? Я не могу выбрать записи из диапазона дат нет проблем с:

SELECT * FROM mytable 
WHERE myTableDate >= '2014-01-01' AND myTableDate < '2014-12-31' 

Однако мои даты появляются в моих CartoDB карты как: 2014-10-16T00: 00: 00Z и я просто пытаемся получить всплывающие окна на мои карты: 10-16-2014.

Любая помощь будет оценена по достоинству - Спасибо!

+0

Даты в CartoDB на самом деле являются 'TIMESTAMP WITH TIME ZONE', так как @Craig предложил вам использовать функцию' to_char' для форматирования даты в форме, которая лучше работает для отображения на инфо-окнах или ярлыках. –

ответ

1

Вы путаете хранилище с дисплеем.

Храните отметку времени или дату, в зависимости от того, какое время вам нужно или нет.

Если вы хотите отформатированный выход, запросите базу данных для форматированного вывода с помощью to_char, например.

SELECT col1, col2, to_char(col3, 'DD-MM-YY'), ... FROM ...; 

См. the PostgreSQL manual.

Невозможно установить заданный пользователем формат вывода даты. Даты всегда выводятся в формате ISO. Если PostgreSQL позволяет вам указывать другие форматы без изменения текста запроса SQL, это действительно путало бы драйверы и приложения клиентов, которые ожидают формат даты, указанный в протоколе, и получить что-то совершенно другое.

0

У вас есть два основных варианта.

1 Измените столбец от метки времени до столбца даты. 2 На данный момент в вашем SQL-запросе (т. Е. Mytimestamp :: date works).

В целом, если это проблема с презентацией, я обычно не думаю, что это хорошая причина, чтобы гасить вокруг структуру базы данных. Это лучше обрабатывается клиентской обработкой или кастом в SQL-запросе. С другой стороны, если проблема является семантической, вы можете захотеть пересмотреть структуру своей базы данных.

+0

Хорошо спасибо Крису. Я попробовал кастинг, как вы предложили, и не может заставить это работать. Я специально пробовал это в CartoDB в своем всплывающем окне на своих картах. Я попробовал несколько вариантов CAST (myTableDate AS DATE) и так далее, но не повезло. – enjoypb

+0

Может быть, cartodb делает свою собственную внутреннюю обработку? –

+0

может изменить ваш вопрос, чтобы включить вывод \ d нарушившего стола? –

Смежные вопросы