Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Fecha mayor que Sysdate (https://www.clubdelphi.com/foros/showthread.php?t=12110)

RyAr 06-07-2004 12:16:39

Fecha mayor que Sysdate
 
Buenas, estoy haciendo una consulta SQL contra una tabla en Paradox. La consulta es esta:

Código SQL [-]
SELECT 
f.FECHARESERVA, f.HORAINICIO, f.HORAFIN, f.EMPRESA2, 
SERVICIO, SALON1, f.ANULADO2 
FROM basedatos.db b, fechas.db f
WHERE f.EMPRESA2 = b.EMPRESA AND f.FECHARESERVA >= SYSDATE
ORDER BY f.FECHARESERVA ASC;

El tema es que que la fecha de reserva sea mayor que la del ordenador, y hace tiempo hice una consulta parecida, y no se usaba >= SYSDATE, sino de otra manera. ¿Alguien me la recuerda?. Por cierto f.FECHARESERVA esta declarado como DATE en Paradox.

Saludos, y gracias

eduarcol 06-07-2004 15:20:28

>= Date??? ó >= Now???
Si nos dijeras cual es el error que te da con SysDate podriamos ayudarte un poco mas

RyAr 06-07-2004 15:35:57

Buenas, y perdona que se me olvidara poner el error. Me da dos errores distintos, al ejecutarlo poniendo Date o Sysdate.

El error al ejecutarlo con Sysdate es este:



El error ejecutandolo con Date es este:



Por lo que veo el correcto debe ser Date, ya que Sysdate lo reconoce como un campo de la tabla.

Saludos, y gracias

RyAr 06-07-2004 15:37:43

Se me olvido decir que al ejecutarlo poniendo now, da el mismo error que sysdate, reconociendolo como un campo d ela tabla, por lo que este tampoco valdra.

Saludos

eduarcol 06-07-2004 15:49:30

lo que pasa es que debes ponerlo entre comillas o sea algo asi:

>= " + DatetoStr(Date) + "

RyAr 06-07-2004 15:56:24

Buenas, el caso es que lo tengo declarado en la tabla de paradox como date, aun asi debo convertirlo a string???

Saludos

eduarcol 06-07-2004 16:00:56

si, luego que le coloques las comillas tambien te puede dar otro error pero por el formato de fecha o sea, de pronto el BDE este configurado como mm/dd/aaaa y el sistema operativo este dd/mm/aaaa pero ese es otro error q lo puedes arreglar desde las configuraciones

marcoszorrilla 06-07-2004 17:41:26

Paradox en el SQL que admite a través del BDE que yo sepa no admite ni Date, Today, Now.

Yo cuando quiero comparar una fecha con la del sistema hago como este ejemplo:

Código SQL [-]
f:String;
begin

f:=FormatDateTime('mm/dd/yyyy',date);
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select Fecha,Fecven');
Query1.Sql.Add('Where fecven >'''+f+'');
Query1.Sql.Add('from Factura');
ShowMessage(Query1.text);
Query1.Open;
end;

Un Saludo.

marcoszorrilla 06-07-2004 17:52:10

Quizás mejor este otro ejemplo se aproxima más a lo que tu quieres:

Código SQL [-]
procedure TForm1.Button1Click(Sender: TObject);
var
f:String;
begin
f:=FormatDateTime('mm/dd/yyyy',date);
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('Select Numero, Fecha, Codcliente');
Query1.Sql.Add('from Factura');
Query1.Sql.Add('Where Fecha <'+QuotedStr(f));

ShowMessage(Query1.text);//Esto para ver el SQL sobra
Query1.Open;
end;
Un Saludo.

RyAr 06-07-2004 19:19:32

Buenas, gracias por tu maravilloso ejemplo, el cual hasta mañana no podre probar, puesto que tengo el programa en la oficina. Ya te dire como ha ido cuando lo pruebe.

Saludos, y mcuhas gracias

RyAr 07-07-2004 09:21:17

Muchas gracias, tu ejemplo va a las mil maravillas.

Saludos


La franja horaria es GMT +2. Ahora son las 07:35:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi