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 generalizar ‘2021/11/27’ en CASE.

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traducir el código y la salida en markdown.

Soy principiante.

Estoy trabajando en la siguiente consulta pero no está funcionando bien. ¿Podría alguien ayudarme?

Este es el conjunto de datos sin procesar.

View post on imgur.com

Solo quiero sacar la fecha como ’11/27/2021′ de aquí. No ‘100g’ ni ‘null’.

El tipo de datos es STRING.

Y mi consulta es la siguiente.

SELECT
CASE WHEN
date = ‘m/%d/%Y’ THEN PARSE_DATE(“%Y/%m/%d”, expiry_date)
ELSE NULL
END AS fecha,
FROM
mi_base_de_datos

Espero su consejo.

¡Que tengas un buen día!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    En primer lugar, parece que hay un pequeño error tipográfico en tu consulta. Tienes expiry_date en lugar de date en tu función PARSE_DATE. Por lo tanto, deberías actualizar tu código a:

    SELECT
        CASE WHEN 
        date = 'm/%d/%Y' then PARSE_DATE("%m/%d/%Y", date) 
        Else null 
        end as date,
    FROM
        my_database
    

    Para obtener solo las fechas en el formato mm/dd/yyyy, puedes modificar la consulta para usar una expresión regular (regex) para comprobar si el valor coincide con el patrón deseado. Aquí tienes una versión actualizada de la consulta:

    SELECT
        CASE WHEN 
        REGEXP_CONTAINS(date, r'[0-9]{2}/[0-9]{2}/[0-9]{4}') 
        then PARSE_DATE("%m/%d/%Y", date) 
        Else null 
        end as date,
    FROM
        my_database
    

    En esta consulta, se utiliza REGEXP_CONTAINS para comprobar si el valor en la columna date coincide con el patrón regex [0-9]{2}/[0-9]{2}/[0-9]{4}, que representa una fecha en el formato mm/dd/yyyy. Si coincide, se utiliza la función PARSE_DATE para convertirla en un tipo de dato fecha.

    ¡Espero que esto ayude! Avísame si tienes alguna otra pregunta.

Comments are closed.