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.

SSIS convierte una cadena sin ceros en un formato de fecha.

Estoy trabajando tratando de convertir un tipo de dato de cadena a una fecha que no contiene ceros en la parte del mes y del día y necesito convertirlo a un formato de fecha “yyyy-MM-dd”, cualquier valor de un solo dígito vendrá sin cero.

Por ejemplo, las fechas vienen así:

162022 debería ser (01-06-2022)

o

762022 debería ser (07-06-2022)

o

1262022 debería ser (12-06-2022)

¿Cómo puedo obtener el formato adecuado para convertirlo en un tipo de dato de fecha utilizando una columna derivada?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para convertir el tipo de dato cadena a un tipo de dato fecha en el formato deseado utilizando una columna derivada, se pueden seguir los siguientes pasos:

    1. Crear una nueva transformación de columna derivada en el paquete SSIS.
    2. En el Editor de Transformación de Columna Derivada, especificar un nuevo nombre de columna para la columna de salida que contendrá el valor de fecha convertido.
    3. Usar la siguiente expresión para convertir la cadena a fecha en formato ‘yyyy-MM-dd’:
      (DT_DATE)(SUBSTRING([date_string],1,2) == "0" ? "20" + SUBSTRING([date_string],3,2) : "19" + SUBSTRING([date_string],3,2) 
      + "-" + SUBSTRING([date_string],1,2) + "-" + (SUBSTRING([date_string],5,2) == "0" ? SUBSTRING([date_string],6,1) : SUBSTRING([date_string],5,2)))
      

      La expresión anterior toma la cadena de fecha entrante en el formato ddmmaaaa, utiliza el operador condicional para crear la subcadena de año basada en si los primeros dos caracteres de la cadena representan una fecha en el siglo XXI o en el siglo XX, crea la subcadena de mes tomando los primeros dos caracteres de la cadena de fecha y verifica si representa un solo dígito, y une la subcadena de año y mes con un guion. Finalmente, crea la subcadena de día condicionalmente verificando si los caracteres 4 y 5 de la cadena de entrada representan un solo dígito, y la une con la subcadena de año y mes con guiones.

    4. Mapear la columna de salida recién creada a la columna de destino deseada en el flujo de datos.

    Siguiendo estos pasos, los datos de cadena entrantes se convertirán al formato de fecha especificado, con el formato adecuado para las fechas que no contienen ceros en la cadena.

Comments are closed.