Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-01-2006
zorrocarolini zorrocarolini is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
zorrocarolini Va por buen camino
Unhappy Problemas con el formatos de Fechas en SQL

HOLA

Soy nuevo en el Foro y estoy orgulloso de pertenecer ahora al mismo y espero como tantos de Ustedes poder ayudar y que me ayuden. Desde ya Muchisimas Gracias.

Tengo un problema y es que he hecho un programita con un DBGrid , un Botón , dos edits y un Query. Lo que hace este sistemita es listar todos los empleados y sus ventas totales (ya sumadas) en un periodo dado mediante una consulta SQL.

Pero el problema es que en los edits solo puedo ingresar las fechas en formato ‘mm/dd/yyyy’. O sea si escribo 12/20/1994 no hay
Problemas pero si escribo: 20/12/1994 me da un error y no encuentro la forma de ingresar un dato en formato ‘dd/mm/yyyy’ mediante un código.

El sistemita trabaja con dos tablas paradox una llamada employee y la otra orders.
Y aquí les mando el codigo:
Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
var
desde, hasta: string ;

begin
with Query1 do begin
Active := False;
with SQL do begin
Clear;
desde := txtdesde.text;
hasta := txthasta.text;
QUERY1.SQL.ADD('SELECT employee.EmpNo, LastName, FirstName,');
QUERY1.SQL.ADD('SUM(ItemsTotal) AS Ventas');
QUERY1.SQL.ADD('FROM employee LEFT JOIN orders');
QUERY1.SQL.ADD('ON employee.EmpNo = orders.EmpNo');
QUERY1.SQL.ADD('WHERE SaleDate BETWEEN "' + desde + '" AND "' +
hasta + '"');
QUERY1.SQL.ADD('GROUP BY employee.EmpNo, LastName, FirstName');
end;
Active := True;
end;
He mirado ya en el foro Sql y vi un problema parecido al mío pero no entiendo lo que debo escribir en el código, ni donde (si en el Query o en editor). Como ya ven SQL en Delphi no es mi fuerte ya que para eso necesitaría un tuto de SQL en delphi paso a paso y hasta ahora no lo he encontrado. Les agradecería desde ya sus valiosas respuestas. Gracias Saludos.

PD: para sacar la fecha la sentencia lo hace desde la tabla orders del campo SaleDate el cual es del tipo Date.

Última edición por vtdeleon fecha: 16-01-2006 a las 18:34:25.
Responder Con Cita
  #2  
Antiguo 16-01-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
  • En lugar Edits, utiliza TDateTimePickers
  • Consulta la función FormatDateTime en la ayuda de delphi
  • Lee la guía de estilo
  • Si ya tienes un "With Query1" y un "With SQL", no es necesario que pongas "Query1.SQL.Add"
  • Podrías no usar las variables desde y hasta y poner directamente los controles dentro de tu query


Bienvenido a los foros
__________________


Última edición por ContraVeneno fecha: 16-01-2006 a las 18:09:38.
Responder Con Cita
  #3  
Antiguo 16-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Para evitar estos problemas con el formato de fechas, prefiero trabajar con parámetros:

Código SQL [-]
select *
  from tabla
 where fecha = :fecha;

Código Delphi [-]
  Query1.ParamByName('fecha').AsDateTime := dtpDesde.DateTime;
  Query1.Open;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 18-01-2006
zorrocarolini zorrocarolini is offline
Registrado
 
Registrado: ene 2006
Posts: 5
Poder: 0
zorrocarolini Va por buen camino
Thumbs up Agradecimiento

Hola Chicos:

Desde ya les estoy agradecido por su atencion, voy a probar sus codigos y casi estoy seguro que funcionaran. Salu2!!!
Responder Con Cita
  #5  
Antiguo 26-01-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Funcion requerida

En delphi tienes esta función:
Código:
function FormatDateTime(const Format: string; DateTime: TDateTime): 
string;
En donde const es una cadena que contiene el formato como quieres que te muestre la fecha y DateTime la fecha que quieres formatear. Para tu caso tendrias que usar como formato la cadena 'dd/mm/yyyy' o 'dd/mm/yy' según quieras.

Código Delphi [-]
MiFechaEnStr := FormatDateTime('dd/mm/yy',TDateTimePicker1.Date);

Ojala te sirva
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 26-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por AzidRain
En delphi tienes esta función:
claro... hay maneras de formatear la fecha, pero si no usas parámetros, dependerás siempre que el motor de base de datos soporte el formato que has decidido usar en tu aplicación. Usando parámetros, dejás que tu capa de acceso a datos se encargue de esos "pequeños detalles" por vos con lo que, a mi juicio, tenes aplicaciones mas portables y menos propensas a errores.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 31-01-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
hola.

También podrias utilizar funcion SQL char(tipo de formato, valor), lo que hace es formatear la fecha a un formato definido (ISO, US, EUR, etc).
Responder Con Cita
  #8  
Antiguo 31-01-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por cuburu
hola.

También podrias utilizar funcion SQL char(tipo de formato, valor), lo que hace es formatear la fecha a un formato definido (ISO, US, EUR, etc).
dicha función char no parece ser parte del estándar. Probablemente algún dialecto la soporte, tal como el to_char de oracle, pero eso ya es otra historia...
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problemas con Fechas SQL 2000 Huer SQL 6 28-09-2005 00:22:22
formato de fechas SQL Barzaugc SQL 3 26-06-2005 11:54:23
Problemas con una consulta de fechas tiagor64 SQL 6 08-02-2005 20:52:04
Problemas con D5 y conectividad para SQL Server 2000 msaizar MS SQL Server 1 20-02-2004 21:06:57
Problemas con la instalacion de SQL Server 2000 Delphos MS SQL Server 3 22-06-2003 19:45:50


La franja horaria es GMT +2. Ahora son las 11:51:51.


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
Copyright 1996-2007 Club Delphi