2015-05-17 1 views
2

Когда я запускаю этот запросMariaDB convert_tz maketime

select convert_tz( 
    concat( 
     (`last_mailing` + interval 1 day), ' ', maketime(`email_delivery_hour`,0,0) 
     ), 
    'EST','GMT') 
    FROM `member_subscriptions` 

дату - метки времени возвращенное включают доли секунды, например,

2014-07-01 05:00:00.000000 

мне нужна дата - время, чтобы вернуться в формате

YYYY-MM-DD HH:II:SS 
  • last_mailing является Колум Дата и время
  • email_delivery_hour п тип колонного типа INT (2)

ответ

1

MAKETIME возвращает TIME, следовательно, CONCAT с DATETIME не будет работать, как ожидалось.

Вместо того, чтобы можно использовать ADDTIME вместо того, чтобы получить желаемый результат

Пример:

CONVERT_TZ(ADDTIME(`last_mailing` + INTERVAL 1 DAY,MAKETIME(`email_delivery_hour`,0,0)),'GMT','EST'); 
+0

Этот запрос является частью зрения MariaDB. Я конвертирую в pgSQL. Причина, по которой я меняю это, заключается в том, что pgSQL не поддерживает datetime (6) (что было бы необходимо с тем, как этот запрос создавался до вашей помощи.) –

+0

Ошибка, с которой я столкнулся сейчас: Ошибка: столбец «next_devotion_send_gmt_date "отношения" member_subscriptions_list_1 "не существует –

+0

Или реальная ошибка, на которой базирующиеся базы данных еще не загружены? –

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