Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por martini002 Ver Mensaje
he estado lidiando con un problemita de formato para fechas
entre el DateTimePicker y el formato de una columna tipo Date de la base de datos,
Estás buscando la solución a un problema que no existe. No hay tal cosa como incompatibilidad de formatos de fecha entre una base de datos y un datetimepicker, simplemente porque el almacenamiento (base de datos) y presentación (datetimepicker) son dos cosas distintas.

La pregunta correcta es ¿cómo insertar/leer valores de tipo DATE en una base de datos? Y fíjate que digo base de datos , así, en general, y no SQLite.

Aquí dos ejemplos, de inserción y de lectura, usando ZEOS:

Código Delphi [-]
procedure TForm1.btnAgregarClick(Sender: TObject);
begin
  ZQuery1.SQL.Text := 'insert into perosnas (nombre, fecha) values (:nombre, :fecha)';
  ZQuery1.ParamByName('nombre').AsString := txtNombre.Text;
  ZQuery1.ParamByName('fecha').AsDate := dtpFecha.Date;
  ZQuery1.ExecSQL;

  txtNombre.Clear;
end;

procedure TForm1.btnBuscarClick(Sender: TObject);
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text := 'select * from personas where fecha = :fecha';
  ZQuery1.ParamByName('fecha').AsDate := dtpFecha.Date;
  ZQuery1.Open;

  if not ZQuery1.IsEmpty then
    txtNombre.Text := ZQuery1['nombre'];
end;

Mientras uses parámetros, el componente se encargará de pner l fecha en el formato adecuado para cada base de datos.

// Saludos
Responder Con Cita
  #2  
Antiguo 03-09-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
Caramba, no lo puedo creer,
esto lo intente antes, pero entonces no se que haria mal,
porque estaba leyendo desde el picker AsDate pero entonces me daba un error
ahora que lo recuerdo, me decia que no reconocia el AsDate, entonces tenia que usar AsDateTime,
creo que alli es donde estaba el error entonces, oye Roman, Un millon de Gracias enserio, porque estuve 3 dias
con la moral caida y no habia podido hacer mas nada :')

lo acabo de ver, aqui lo tengo,
Ahora tengo el problemita en modo inverso, y asi es como estaba intentando

Código Delphi [-]
  ZQuery2.Close;
  ZQuery2.SQL.Text:= 'Select Min(Fecha) as FechaInicial From FacturaResumen';
  ZQuery2.Open;
  PFechaInicio.Date:= ZQuery2.FieldByName('FechaInicial').AsDateTime;

aqui puedes apreciar que el tipo es "AsDateTime" pero me dice que la fecha no es correcta.
un saludo, gracias!
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #3  
Antiguo 04-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por martini002 Ver Mensaje
lo acabo de ver, aqui lo tengo,
Ahora tengo el problemita en modo inverso, y asi es como estaba intentando

Código Delphi [-]
  ZQuery2.Close;
  ZQuery2.SQL.Text:= 'Select Min(Fecha) as FechaInicial From FacturaResumen';
  ZQuery2.Open;
  PFechaInicio.Date:= ZQuery2.FieldByName('FechaInicial').AsDateTime;

aqui puedes apreciar que el tipo es "AsDateTime" pero me dice que la fecha no es correcta.
un saludo, gracias!
Tienes razón, y no creo que hya mucho qué hacer aquí debido al manejo de datos (innecesariamente pobre, diría yo) que hace SQLite y que ya mencionó ecfisa. Básicamente, SQLite ve cualquier dato como una cadena de caracteres.

Sin embargo, tampoco es difícil leer ese valor:

Código Delphi [-]
var
  FS: TFormatSettings;

begin
  ZQuery1.Open;
  FS.ShortDateFormat := 'y-m-d';
  FS.DateSeparator := '-';
  DateTimePicker1.Date := StrToDate(ZQuery1.FieldByName('fecha').AsString, FS);
end;

// Saludos
Responder Con Cita
  #4  
Antiguo 05-09-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 15
martini002 Va por buen camino
Interesante esa solucion Roman,
pero he decidido hacer caso omiso a ese requerimiento,
para no complicar las cosas con esa BD he preferido
mostar los datos desde los ultimos 30 dias,
implementando este metodo:
y muerta la culebra por la cabeza
muchas gracias por la ayuda

Código Delphi [-]
PFechaInicio.Date:= Date - 30;
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Fechas por rangos con 2 DateTimePicker Darkseratul Conexión con bases de datos 2 23-02-2011 11:12:16
Fechas y Datetimepicker en delphi5 zcatzz Varios 16 15-05-2007 23:16:50
Formato de fechas y DateTimePicker. aoiTo C++ Builder 9 08-12-2006 01:13:39
Between DateTimePicker com fechas iguais le4br SQL 3 23-02-2005 05:18:56
Ver Hora en DateTimePicker en formato de 24Hrs franciscobucio Varios 5 18-10-2004 20:09:36


La franja horaria es GMT +2. Ahora son las 19:49:00.


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