comparar fechas

431 views
Skip to first unread message

Fanny L.

unread,
Nov 8, 2013, 7:24:04 PM11/8/13
to publice...@googlegroups.com
Hola de nuevo, necesito comparar la fecha de mi base de datos con la fecha actual, para lo que ocupo:

SELECT COUNT(id_tickets)as cuenta FROM Ticket where fecha1>"+lcTime+" AND idempleado!="+STR(gnIdEmpleado)

donde
lcTime =Date()
 en la ejecución me dice que hay un error de tipos, esperaba fecha y no recibio el formato correcto, creo que no está acomodando bien el formato necesito que sea año/mes/dia cómo puedo acomodarlo? Gracias de antemano

Fidel Charny

unread,
Nov 8, 2013, 7:42:30 PM11/8/13
to publice...@googlegroups.com
Si fecha1 es un tipo "D", la comparación es directa. 
También te conviene transformar antes gnldEmpleado si es una variable
lcEmpleado=Transform(gnldEmpleado)
ldTime=Date()
SELECT COUNT(id_tickets) as cuenta FROM Ticket where fecha1>ldTime  AND idempleado!=lcEmpleado

Fijate en la nomenclatura de las variables para no enredarte con poco:
Prefijo "L": variable local
c: Character, d: Date, T datetime, o: objeto, b: boolean (más o menos), n: numeric
LOCAL lcEmpleado As Character, ldtime as Date, lnCuenta as numeric

Luis Maria Guayan

unread,
Nov 8, 2013, 9:06:07 PM11/8/13
to publice...@googlegroups.com
-- Trabajar con fechas y horas en Visual FoxPro --
http://www.portalfox.com/article.php?sid=1162


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

HernanCano

unread,
Nov 8, 2013, 10:42:01 PM11/8/13
to publice...@googlegroups.com

SELECT COUNT(id_tickets) as cuenta FROM Ticket where fecha1> date() AND idempleado<>gnIdEmpleado


Fanny L.

unread,
Nov 9, 2013, 12:58:43 PM11/9/13
to publice...@googlegroups.com
El problema es que me imprime así 11/09/13 el año lo está imprimiendo no como 2013 sino como 13, ideas para solucionarlo? por favor!

Fanny L.

unread,
Nov 9, 2013, 1:02:07 PM11/9/13
to publice...@googlegroups.com
El problema es que me imprime así 11/09/13 el año lo está imprimiendo no como 2013 sino como 13, ideas para solucionarlo? por favor!

Fernando D. Bozzo

unread,
Nov 9, 2013, 1:28:47 PM11/9/13
to publice...@googlegroups.com
Hola Fanny:

En la ayuda de FoxPro (F1), buscando "DATE()" te muestra varios seteos relacionados al final de la ayuda de DATE, como:

CTOD( ) Function
DATETIME( ) Function
DTOC( ) Function
SET CENTURY Command
SET DATE Command
SET MARK TO Command
SYS( ) Functions Overview

Seguro que alguno de ellos lo resuelve.

Saludos.-

edgar suarez kummers

unread,
Nov 9, 2013, 1:29:40 PM11/9/13
to publice...@googlegroups.com
Buenas Fanny:

Puedes convertir la fecha en cadena utilizando algo como:

erefe es la variable que contiene tu fecha, sin importar el formato.

erefe es tu fecha larga y si es apenas fecha entonces llegas hasta luego de edia.
Esa variable string entrada la puedes imprimir.

eano = Year(erefe)
emes = Month(erefe)
edia = Day(erefe)
ehora = Hour(erefe)
eminuto = Minute(erefe)
esegundo = Sec(erefe)
entrada = ALLTRIM(STR(eano));
+ ALLTRIM("-");
+ ALLTRIM(right("0" + ALLTRIM(STR(emes)),2));
+ ALLTRIM("-");
+ ALLTRIM(right("0" + ALLTRIM(STR(edia)),2));
+ " ";
+ ALLTRIM(right("0" + ALLTRIM(STR(ehora)),2));
+ ALLTRIM(":");
+ ALLTRIM(right("0" + ALLTRIM(STR(eminuto)),2));
+ ALLTRIM(":");
+ ALLTRIM(right("0" + ALLTRIM(STR(esegundo)),2))

Víctor Hugo Espínola Domínguez

unread,
Nov 9, 2013, 2:28:00 PM11/9/13
to publicesvfoxpro
Hola Fanny

? TRANSFORM(DATE(), "@YS")

Saludos,
Víctor.
Lambaré - Paraguay.

HernanCano

unread,
Nov 9, 2013, 6:42:29 PM11/9/13
to publice...@googlegroups.com
Fanny:
La pregunta original habla de "comparar", pero aquí hablas de "...me imprime así 11/09/13".

¿Cuál es tu inconveniente: ¿comparar o mostrar? Supongo que cuando dices "me imprime" significas "mostrar".

¿Qué quieres ver? ¿La sintaxis del comando que debes utilizar para lo que preguntas?

Házlo como te dije (y nos cuentas):
SELECT COUNT(id_tickets) as cuenta FROM Ticket where fecha1> date() AND idempleado<>gnIdEmpleado
Voy a adivinar: funciona!!!! Si no, nos cuentas y procedemos.

¿Te cuento por qué se que funciona? Por que considero que el campo FECHA1 es de tipo Fecha y como la función DATE() también devuelve algo de tipo fecha, entonces sé que funciona.
------------------------------
En tu pregunta original veo que tienes tres comillas dobles. No me encajan, no entiendo cómo una instrucción así te pueda funcionar.
Si hay algo que falta para que la instrucción que pones sea válida, dilo para entender.
Una sintaxis incorrecta también es da posibilidad para que un comando falle ¿sabías éso?
Reply all
Reply to author
Forward
0 new messages