Вам нужно только конвертировать снова и снова, пока вы не получите нужный формат.Представьте себе пример таблицы, которую Amazon Athena предоставляет с этой структурой
elb_logs
request_timestamp (string)
elb_name (string)
request_ip (string)
request_port (int)
backend_ip (string)
backend_port (int)
request_processing_time (double)
backend_processing_time (double)
client_response_time (double)
elb_response_code (string)
backend_response_code (string)
received_bytes (bigint)
sent_bytes (bigint)
request_verb (string)
url (string)
protocol (string)
user_agent (string)
ssl_cipher (string)
ssl_protocol (string)
. Вы захотите проанализировать, извлечь, объединить и применить условное выражение после функции извлечения.Пожалуйста, примите во внимание, что я должен использовать date_parse()
, поскольку в моей таблице с примерами нет ни одного столбца даты, подобного вашему
SELECT
concat(
year, '/',
CASE WHEN cast(month as integer) between 1 and 9 THEN '0' || month ELSE month END, '/',
CASE WHEN cast(day as integer) between 1 and 9 THEN '0' || day ELSE day END, ' ',
CASE WHEN cast(hour as integer) between 0 and 9 THEN '0' || hour ELSE hour END, ':',
CASE WHEN cast(minute as integer) between 0 and 9 THEN '0' || minute ELSE minute END
) as "Date"
FROM (
SELECT
cast(extract(YEAR FROM date_parse(request_timestamp,'%Y-%m-%dT%H:%i:%s.%fZ')) as varchar) as year,
cast(extract(MONTH FROM date_parse(request_timestamp,'%Y-%m-%dT%H:%i:%s.%fZ')) as varchar) as month,
cast(extract(DAY FROM date_parse(request_timestamp,'%Y-%m-%dT%H:%i:%s.%fZ')) as varchar) as day,
cast(extract(HOUR FROM date_parse(request_timestamp,'%Y-%m-%dT%H:%i:%s.%fZ')) as varchar) as hour,
cast(extract(MINUTE FROM date_parse(request_timestamp,'%Y-%m-%dT%H:%i:%s.%fZ')) as varchar) as minute
FROM "sampledb"."elb_logs"
)
Это должно дать вам результаты, которые вы опубликовали
Надеждаэто помогает (: