es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  ,

Answer

  1. Avatar for 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:

    SELECT 
      CASE 
        WHEN regexp_extract(timestamp_column, '^(\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}\\.\\d{3})$') = timestamp_column 
          THEN 'Sí'
        ELSE 'No'
      END AS is_correct_format
    FROM table_name;
    

    En esta declaración SQL, timestamp_column es el nombre de la columna donde se almacena el timestamp y table_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ón CASE 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.

Comments are closed.