#sql #amazon-web-services #amazon-redshift
Вопрос:
У меня есть table1
данные об этом , и в каждой строке есть "period_start"
и "period_end"
, оба столбца есть dates
. Пример: «2021-06-30».
У меня есть созданный table2
мной файл с 2 столбцами с одинаковым именем, на этот раз они сохранены как timestamp
(клиент хочет в качестве метки времени).
Я запустил запрос, который вставляет результаты table1
в table2
, но преобразует столбцы даты в метку времени. По какой-то причине, которую я не мог понять, результаты table2
-это все даты, а не как отметка времени.
Создание table2
(удалены другие столбцы):
CREATE TABLE IF NOT EXISTS table2
(
,period_start timestamp ENCODE zstd
,period_end timestamp ENCODE zstd
)
Вставка из table1
:
insert into table2 (period_start ,period_end)
select
cast(to_date(period_start,'YYYY-MM-DD HH24:MI:SS') as timestamp),
cast(DATEADD(millisecond, -1,last_day(period_start 75) 1) as timestamp)
from table1;
При выполнении того же выбора я отлично вижу результаты в виде метки времени, при запросе результаты table2
сохраняются в виде даты.
Комментарии:
1. Я бы перепроверил ваши предположения и сделал простой тестовый пример. Весьма вероятно, что у вас есть ошибка в том, что вы делаете, поскольку практически невозможно, чтобы RS делал что-то настолько неправильное. Одна возможность — «создать таблицу, если она не существует» ничего не даст, если таблица уже существует. Вы уверены, что таблица определена с этими столбцами как метки времени?
2. Да, я удалил «таблицу 2», прежде чем создать ее, как написано выше.
3. Я не вижу упоминания о том, чтобы отбросить таблицу 2 выше. В любом случае я ожидаю, что для того, чтобы получить помощь в этом, вам нужно будет опубликовать тестовый пример, демонстрирующий рассматриваемую проблему. Каковы шаги, которые любой может использовать для воссоздания этой проблемы? Держу пари, что при составлении этого тестового примера вы обнаружите ошибку.
4. Я плохо сформулировал это. Моя вина!
5. Я имел в виду — я отбросил таблицу 2 перед ее созданием, я создал ее, как написано выше. Я попробую ваше предложение, Билл. Спасибо.
Ответ №1:
Оказывается, запросы действительно в порядке (я рад). Это была проблема с DBeaver, которая по какой-то причине не показывала их в качестве метки времени. Мне пришлось выйти и войти в программу, и тогда это сработало.