datetime - ¿Cómo sembré dd/mm/aaaa cadena en la fecha en BigQuery?
casting google-bigquery (3)
Tengo 3 columnas 1. dd / mm / aaaa (almacenado como una cadena) 2. app_id y #downloads de aplicaciones
Tengo que encontrar identificadores únicos de aplicaciones descargadas dentro de una semana.
Gracias
Incluso más corto usando SQL estándar:
SELECT TIMESTAMP(PARSE_DATE(''%d/%m/%Y'',''23/03/2015''))
Más corto con REGEXP_REPLACE:
SELECT ds,
TIMESTAMP(REGEXP_REPLACE(ds, r''(..)/(..)/(....)'', r''/3-/2-/1'')) ts
FROM (SELECT ''23/03/2015'' ds)
EDITAR
Versión actualizada para fechas cero que no lideran:
SELECT ds,
TIMESTAMP(REGEXP_REPLACE(ds, r''(.?.)/(..)/(....)'', r''/3-/2-/1'')) ts
FROM (SELECT ''1/01/2017'' ds)
Puede convertir sus cadenas dd / MM / aaaa en marcas de tiempo BigQuery usando algo como lo siguiente:
SELECT TIMESTAMP(year + ''-'' + month + ''-'' + day) as output_timestamp
FROM (
SELECT
REGEXP_EXTRACT(input_date, ''.*/([0-9]{4})$'') as year,
REGEXP_EXTRACT(input_date, ''^([0-9]{2}).*'') as day,
REGEXP_EXTRACT(input_date, ''.*/([0-9]{2})/.*'') AS month
FROM
(SELECT ''30/10/2015'' as input_date),
(SELECT ''25/01/2015'' as input_date)
)
Una vez que los haya convertido en marcas de tiempo, las funciones de fecha y hora le resultarán útiles, según lo que esté intentando hacer.