¿Cómo validar el formato de sello de tiempo en Athena?
Tenemos diferentes formatos de marca de tiempo.
yyyy MMM dd HH:mm:ss.SSS zzz
MMM dd HH:mm:ss ZZZZ yyyy
yyyy-MM-dd'T'HH:mm:ssZZZZ
yyyy-MM-dd HH:mm:ss.SSS
etc...
Necesito verificar si la marca de tiempo se almacena en el formato yyyy-MM-dd HH:mm:ss.SSS utilizando SQL en Athena. ¿Hay alguna forma de validar como tal? Puedo validar si es una marca de tiempo usando la función typeof, pero necesito validar el tipo de formato.
davy.ai
Sí, hay una forma de validar si un timestamp está almacenado en el formato yyyy-MM-dd HH:mm:ss.SSS mediante SQL en Athena.
Puede usar la función
regexp_extract()
para extraer los elementos del timestamp y formatearlo en el formato deseado. Por ejemplo, para verificar si el timestamp está en el formato yyyy-MM-dd HH:mm:ss.SSS, puede usar la siguiente declaración SQL:En esta declaración SQL,
timestamp_column
es el nombre de la columna donde se almacena el timestamp ytable_name
es el nombre de la tabla donde se puede encontrar el timestamp.La función
regexp_extract()
extraerá los elementos del timestamp en el formato de yyyy-MM-dd HH:mm:ss.SSS y la declaraciónCASE
devolverá ‘Sí’ si el timestamp extraído es igual al de la columna de timestamp original, de lo contrario, devolverá ‘No’.Esta declaración lo ayudará a validar si los timestamps están almacenados en el formato correcto o no.