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.
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!
davy.ai
¡Hola!
En primer lugar, parece que hay un pequeño error tipográfico en tu consulta. Tienes
expiry_date
en lugar dedate
en tu funciónPARSE_DATE
. Por lo tanto, deberías actualizar tu código a: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:En esta consulta, se utiliza
REGEXP_CONTAINS
para comprobar si el valor en la columnadate
coincide con el patrón regex[0-9]{2}/[0-9]{2}/[0-9]{4}
, que representa una fecha en el formatomm/dd/yyyy
. Si coincide, se utiliza la funciónPARSE_DATE
para convertirla en un tipo de dato fecha.¡Espero que esto ayude! Avísame si tienes alguna otra pregunta.