datetime casting google-bigquery string-to-datetime

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.