Necesita ayuda para seleccionar la fecha.Estoy creando un subconjunto donde estoy usando Seleccionar dónde: Fecha de inicio de sesión == 18/01/2019; No puedo hacer que funcione.También intenté abrir el subconjunto y ejecutar el generador de consultas.Puedo agregar todos los campos y luego filtrar por fecha de inicio de sesión.Las fechas de inicio de sesión se muestran en el filtro.Si elijo una de las fechas y presiono actualizar, no se muestran registros.A continuación se muestra mi código y adjunto la captura de pantalla del generador de consultas.Cualquier ayuda sería apreciada.
Saludos,
Wayne
</CODE></PRE><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture-6.PNG" style="width: 973px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Capture-6.PNG" style="width: 973px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture-6.PNG" style="width: 973px;"><img src="https://us.v-cdn.net/6038925/uploads/images/15261iF7CEA402ACB0B52C/Capture-6.PNG" role="button" title="Capture-6.PNG" alt="Capture-6.PNG" /></span></SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-108358" slang="en-US" mode="NONE">Re: Necesito ayuda para seleccionar la fecha.</LINGO-SUB><LINGO-BODY id="lingo-body-108358" slang="en-US" mode="NONE">Jim,<BR /><BR /> Finalmente lo resolví. Tomé su solución, luego me deshice de la extensión y la agregué nuevamente a mi selección original. Por alguna razón la extensión no funcionó.<BR /> Gracias por tomarse todo el tiempo para ayudarme a resolver esto. Muy apreciado. Sin todos los expertos de este foro, las personas que aprenden como yo no podrían completar sus proyectos.<BR /><BR /> Saludos,<BR /><BR /> Wayne</LINGO-BODY><LINGO-SUB id="lingo-sub-108356" slang="en-US" mode="NONE">Re: Necesito ayuda para seleccionar la fecha.</LINGO-SUB><LINGO-BODY id="lingo-body-108356" slang="en-US" mode="NONE"><P>Jim,</P><P>Noté en la herramienta de depuración que indica que ALstartDT es una cadena, no un número.Ojalá esto ayude.</P><P> </P><P>Saludos,</P><P> </P><P>Wayne</P></LINGO-BODY><LINGO-SUB id="lingo-sub-108355" slang="en-US" mode="NONE">Re: Necesito ayuda para seleccionar la fecha.</LINGO-SUB><LINGO-BODY id="lingo-body-108355" slang="en-US" mode="NONE"><P>Jim,</P><P> </P><P>No hay errores, pero no se subconjunto de la fecha ALstartDT extraída del cuadro de texto de fecha.Mi archivo contiene filas con fechas de inicio de sesión del 2/1/2019 al 24/1/2019. Mi ALstartDT es el 18/01/2019.</P><P> </P><P>Saludos,</P><P> </P><P>Wayne</P></LINGO-BODY><LINGO-SUB id="lingo-sub-108347" slang="en-US" mode="NONE">Re: Necesito ayuda para seleccionar la fecha.</LINGO-SUB><LINGO-BODY id="lingo-body-108347" slang="en-US" mode="NONE"><P>El problema es que tiene :login Date como una columna de caracteres y contiene los datos de hora junto con los datos de fecha.Entonces, cuando lo comparas con ALstartDT, está teniendo problemas.Le sugiero que descomente la línea donde intentó cambiar la fecha de inicio de sesión a un número con un formato de "m/d/y".Debería cambiarse ligeramente para que parezca</P>
<PRE><CODE class=" language-jsl">dt6:Login Date << data type(numeric) << modeling type(continuous)<< format( "m/d/y");
y luego cambie su selección de líneas a
dt6 << Select where ((Contains(MyList, :Site ID)) & :Analysis == "G4");
dt6 << Select where (:Login Date >= informat(ALstartDT,"mm/dd/yyyy"),current selection("extend"));Re: Necesito ayuda para seleccionar la fecha.Jim,
La tabla JMP de ejemplo: Fecha de inicio de sesión tiene formato de caracteres.Creo que el AlstartDT es numérico y por eso tengo el problema.¿Crees que este es el problema?Si es así, ¿qué recomiendas?
Saludos,
Wayne
Re: Necesito ayuda para seleccionar la fecha.Jim,
Ese es el excel que estoy importando.Después de importar, obtengo la siguiente tabla.Ver adjunto.
Wayne
Re: Necesito ayuda para seleccionar la fecha.Jim,
Estoy de acuerdo.Adjunto una tabla de muestra.
Saludos,
Wayne
Re: Necesito ayuda para seleccionar la fecha.Estoy bastante seguro de que el problema es una falta de coincidencia entre si la columna es un carácter o no y la variable de comparación es un carácter.¿Puede adjuntar una tabla de datos de muestra?
Re: Necesito ayuda para seleccionar la fecha.Jim,
Todavía obtengo que el argumento debe ser numérico{1} en el acceso o evaluación de 'Format', Format/*###*/(:Login Date, "mm/dd/yyyy")Re: Necesito ayuda para seleccionar la fecha.Ups, mi error.La [Fila()] es el problema.Usar
dt << select where( Format( :Login Date, "mm/dd/yyyy" ) <= ALstartDT );
Re: Necesito ayuda para seleccionar la fecha.Jim,
Cuando intento convertir :Login Date en una cadena, recibo el error de que el argumento debe ser numérico{1} en el acceso o evaluación de 'Formato', Format/*###*/:Login Date [Row()], "dd/mm/aaaa")
Saludos,
Wayne
Re: Necesito ayuda para seleccionar la fecha.Porque ha configurado su variable "ALstartDT" en una cadena
ALstartDT = Uppercase( Format( TempstartDT, "mm/dd/yyyy" ) );
(La función Format() devuelve un valor de cadena)
Luego deberá convertir su ":Fecha de inicio de sesión" en una cadena también... la ":Fecha de inicio de sesión", supongo que es una columna de fecha JMP.
dt6 << Select where( Format(:Login Date[row()], "mm/dd/yyyy") >= ALstartDT, current selection( "extend" ) );
Re: Necesito ayuda para seleccionar la fecha.Jim,
Estoy usando 14.1.He probado muchas formas diferentes de formatear mis fechas y no he descubierto el formato correcto.A continuación se muestra más de mi código.Estoy pasando una variable de un cuadro de fecha.Mi fecha de inicio de sesión de importación de Excel se ve así
Eche un vistazo si estoy pasando ALstartDT correctamente y alguna recomendación sobre cómo formatear correctamente la fecha para que la selección funcione.
Gracias,
Wayne
Borrar registro();
Los nombres están predeterminados aquí (1);
ejecutarScript = Expr(
TempstartDT = iniciar << obtener;
TempendDT = fin << obtener;
ALstartDT = Mayúsculas(Formato(TempstartDT, "dd/mm/aaaa"));
ALendDT = Mayúsculas(Formato(TempendDT, "dd/mm/aaaa"));
);
// Escrito por Vince Faller
// Hace que aparezca un calendario en un cuadro de edición numérica (el valor predeterminado es ahora)
// Nota, esto sólo funciona en JMP 11 o superior
cuadro de fecha = Función (
{tiempo = Hoy()},
{nueva caja},
nueva caja = Evaluación(
Sustituto(
Nombre Expr(
Cuadro de edición de número(
timething, // Eval(Sub()) debido a la peculiaridad de JMP
10, // Solo necesito esto porque JMP no tiene un ancho predeterminado
< Función ({yo},
{},
Si (Falta (yo << obtener),
self << Set( Eval( DUMMY ) ) // Establece la fecha para el argumento del tiempo
)
)
),
<< Establecer formato(Formato( "m/d/yh:m:s", 23, 0 ) ); // Crea formato de fecha y hora para el cuadro (da calendario)
)
),
Expr( DUMMY ), tiempo
)
);
nueva caja;
);
nw =
Nueva ventana( "Extracción de tabla de datos SQL",
Cuadro de alineación(NCol(2),
TextBox("FechaHora de inicio"), inicio = dateBox(Hoy()- InDays(12)),
TextBox("Fin FechaHora"), fin = dateBox(),
ButtonBox("Cancelar", ButtonPressed = "Cancelar"), ButtonBox("Obtener datos", ButtonPressed = "Obtener datos") //almacena la entrada del botón del usuario en una variable
));
espera (15);
//Si las declaraciones toman medidas según el botón que se presionó en el mensaje de fecha
If ( ButtonPressed == "Cancelar", nw << Cerrar ventana);
If (BotónPresionado == "Cancelar", Detener());
if (BotónPresionado == "Obtener datos", ejecutarScript);
If ( ButtonPressed == "Obtener datos", runScript2);
If ( ButtonPressed == "Obtener datos", nw << Cerrar ventana);
Caption("La consulta se está ejecutando");
esperar(0);
Los nombres están predeterminados aquí (1);
Usar para todas las hojas (1),
Concatenar hojas de trabajo (0),
Crear columna de concatenación (0),
Configuración de la hoja de trabajo (
1,
Tiene encabezados de columna (1),
Número de filas en encabezados (1),
Los encabezados comienzan en la fila (1),
Los datos comienzan en la fila (2),
Los datos comienzan en la columna (1),
Los datos terminan en la fila (0),
Los datos terminan en la columna (0),
Filas distribuidas replicadas (1),
Encabezados distribuidos replicados (0),
Suprimir filas ocultas (1),
Suprimir columnas ocultas (1),
Suprimir columnas vacías (1),
Tratar como jerarquía (0),
Pila de series múltiples (0),
Importar colores de celda (0),
Limitar detección de columna (0),
Cadena de separación de columnas( "-" )
);
);
//Columna ("Fecha de inicio de sesión") << tipo de datos (numérico) << formato("m/d/y");
dt6 << Seleccionar dónde (:Fecha de inicio de sesión >= ALstartDT,selección actual("extender"));
dt7 << seleccionar dónde (Falta (: ID de etiqueta)) << eliminar filas;
selrows=dt7 << obtener filas donde (:Entrada formateada == "ND");
dt7:Entrada formateada[selRows]="0";
dt7: Entrada formateada << tipo de datos (Numérico);
Re: Necesito ayuda para seleccionar la fecha.Para ampliar @Mark_Bailey La respuesta de aquí es un ejemplo que muestra la constante de fecha en uso.
dt = open("$SAMPLE_DATA\TechStock.jmp");
dt << select where(Date <= 05Jan2001);
Para más consejos sobre fechas ver Usando fechas, horas, fechas y duraciones en JMP .
Re: Necesito ayuda para seleccionar la fecha.Tenga en cuenta que puede utilizar valores de fecha literales (constantes) directamente sin la necesidad de realizar conversiones entre cadenas de caracteres y valores numéricos. La forma es DDMmmAAAA:HH:MM:SS.S . (Solo usa la cantidad necesaria de este formulario, omitiendo el lado derecho). Entonces, por ejemplo, podría ingresar directamente el valor numérico correcto para las 8 a. m. de hoy como:
29Jan2019:08:00
El editor de secuencias de comandos reconoce este valor como un número con código de color si tiene la función habilitada.
Re: Necesito ayuda para seleccionar la fecha.Aquí hay un ejemplo de Seleccionar dónde, en la misma estructura que su Seleccionar dónde anotado.Funciona.Así que creo que posiblemente necesites usar el depurador JSL para revisar tu código y descubrir dónde están los problemas.
names default to here(1);
dt= open("$SAMPLE_DATA/Aircraft Incidents.jmp");
MyList = {"Accident", "Incident" };
dt << Select where( (Contains( MyList, :Investigation Type) & :Location == "Eden, UT"));
dt << Select where( format(Column( "Event Date" )[Row()], "M/D/Y" ) == "01/05/2001", current selection("extend"));
Revisé el código de JMP 11.La "selección actual ("extender")" se agregó en JMP 12, por lo que JSL no funciona correctamente en JMP 11, pero sí funciona después de esa versión.
Re: Necesito ayuda para seleccionar la fecha.Jim,
Probé tu sugerencia y aún así los datos no se filtraron.A continuación se muestra lo que usé.
Saludos,
Wayne
Re: Necesito ayuda para seleccionar la fecha.Los valores de fecha JMP son valores numéricos.Si desea comparar un valor en "Fecha de inicio de sesión" con un valor de fecha, debe convertir el valor de "Fecha de inicio de sesión" en una cadena de caracteres y comprimirlo en "07/01/2018", o conservarlo como un numérico y convierta "07/01/2018" a un valor numérico de fecha y hora.El siguiente script realiza la selección utilizando la metodología anterior.
Column( "Login Date" ) << data type( numeric ) << Format( "m/d/y" );
MyList = {"HCDS", "HCDS;LENNY", "HCDS; WACKER", "HCDS; GOLDEN SAMPLE", "HCDS; ALJ", "HCDS; LENNY C",
"HCDS; WACKER; GOLDEN SAMPLE", "HCDS; WACKER; PRE-MOVE"};
dt6 << Select where( (Contains( MyList, :Site ID )) & :Analysis == "G4" );
dt6 << Select where( format(Column( "Login Date" )[Row()], "M/D/Y" ) == "01/07/2018", current selection( "extend" ) );
dt7 = dt6 << Subset( Output Table( "Aloha Lenny Assay Subset" ), Selected Rows( 1 ), Selected Columns( 0 ) );
dt7 << select where( Is Missing( :Label ID ) ) << delete rows;
selrows = dt7 << get rows where( :Formatted Entry == "ND" );
dt7:Formatted Entry[selRows] = "0";
dt7:Formatted Entry << data type( Numeric );