Cambiando la columna de caracteres a la columna de fecha<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Supongamos que tenemos una tabla con una columna de tipo carácter con fechas del formato "dmy". Ejemplo dado:
| Fechas de personajes |
|---|
| 05.08.2015 |
| 17.03.2016 |
| 12.05.2016 |
Ahora quiero convertir las fechas de caracteres en fechas numéricas. Sé que este es un problema común y hay muchas cosas sobre las que leer. Sin embargo, lo que no entiendo es lo siguiente:
Si hago clic derecho en la columna, llego a la información de la columna y cambio el tipo de datos a numérico y luego selecciono "dmy" como formato, todo está bien. Todas las fechas se convierten correctamente. Pero si ejecuto el siguiente script:
Columna("Fechas de caracteres") << Tipo de datos(numeric) << Informat("dmy") << Formato("dmy");
o
Columna("Fechas de caracteres") << Tipo de datos(numérico) << Formato("dmy");
sólo las filas 1 y 3 se convierten correctamente. La segunda fila de nuestra columna de ejemplo es nula después, presumiblemente porque el formato se malinterpreta como "mdy".
¿Cómo es posible que estos enfoques (guión/manual) conduzcan a resultados diferentes? ¿Y qué puedo hacer para que el enfoque del guión funcione?
¡Gracias!
Re: Cambiar columna de caracteres a columna de fechaJMP no siempre utiliza el formato mdy en informat.
Utiliza el formato mdy si la primera fecha de la primera fila se ajusta al mdy, independientemente de lo que haya en las filas restantes.
Si la primera fila solo puede ajustarse al formato dmy, se utiliza ese formato. Entonces, al realizar la prueba, todo puede parecer bien hasta que la fila importada se ajuste al formato mdy... Por supuesto, en los EE. UU. esto no es un problema ya que todas las fechas están en mdy.
Sigue siendo el caso en JMP 15.1.0 y espero que se solucione en algún momento, ya que todavía es complicado trabajar con fechas importadas en JMP, aunque ha habido algunas mejoras en las importaciones de .csv y Excel.
Re: Cambiar columna de caracteres a columna de fechaGracias MS. La "Fecha local" hizo el trabajo. Sin embargo, todavía existe el bucle For Each. Pero pagaré para encontrar una solución diferente.
Mientras tanto, descubrimos que es importante instalar el controlador ODBC apropiado si desea transferir fechas numéricas desde una base de datos MS SQL a JMP. El driver "SQL Server" no nos dejaba importar fechas numéricas, pero el "ODBC Driver 11 for SQL Server" sí.
Re: Cambiar columna de caracteres a columna de fechaMuy, muy agradable
Re: Cambiar columna de caracteres a columna de fechaPodrías probar el Fecha local formato.
Columna("Fechas de caracteres") << Tipo de datos(numérico) << Formato("Fecha local");
Re: Cambiar columna de caracteres a columna de fechaGracias por tu respuesta Nelson. Ejecuto el script y acabo de obtener marcas de tiempo en la columna "fechas de caracteres". Sin embargo, no entiendo por qué JMP ignora el comando Formatear. Mi sistema: JMP 12.2.0 en Windows 7 en Alemania (UTC+1; dmy).
Actualmente estoy tratando de evitar los bucles For Each Row para un script que convierte automáticamente todas las columnas de caracteres con fechas en fechas numéricas. Tengo esa solución, pero es muy lenta. De ahí mi pregunta anterior.
Re: Cambiar columna de caracteres a columna de fechaAparentemente hay un problema en JSL al realizar la conversión correctamente.Parece que siempre utiliza "m/d/y" como información.El siguiente script hará la conversión.
Nombres predeterminados aquí ( 1 ) ;
Intentar ( Cerca ( Tabla de datos ( "prueba" ) , guardar ) ) ;
dt = Nueva mesa ( "prueba" ,
Agregar filas ( 3 ) ,
Nueva columna ( "Fechas de personajes" ,
Personaje ,
"Nominal" ,
Establecer valores ({ "05.08.2015" , "17.03.2016" , "05.12.2016" } )
)
) ;
Por cada fila (
: Fechas de personajes = substrato ( : Fechas de personajes , 4 , 2 ) || "." ||
substrato ( : Fechas de personajes , 1 , 2 ) || "." || substrato ( : Fechas de personajes , 7 )
) ;
Columna ( "fechas de personajes" ) << tipo de datos (numérico) << Formato ( "d/m/a" ) ;