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 06-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
Grabar en la Base de datos solo la Fecha de un DateTimerPicker

Buenas Tardes Amigos

Utilizo Delphi 7 y Sql Server Express 2008 y estoy utilizando un Componente DateTimerPicker para Grabar la Fecha en la base de datos pero me Graba la fecha y la Hora y me interesa solo la fecha.

En la base de datos tengo un Campo llamado Fecha del tipo DateTime, silo lo coloco de tipo date me da un error porque el DateTimepicker le envia tambien la Hora.

Utilizo en Siguiente Codigo en delphi:

Código Delphi [-]
DataSource.DataSet.FieldByName('Fecha').AsDateTime:=DTPFecha.Date;
Responder Con Cita
  #2  
Antiguo 06-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Y por qué no usas un tipo de dato sólo fecha?, un date.
Responder Con Cita
  #3  
Antiguo 06-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola hondaalberto.

La propiedad Date del TDateTimePicker devuelve un valor del tipo TDate por lo que no puede estar allí el problema.

No conozco Sql Server Express 2008, pero proba de este modo:
Código Delphi [-]
  DataSource.DataSet.FieldByName('Fecha').Value:= DTPFecha.Date;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 06-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
cambie el campo a tipo date y probe tambien haciendolo como dice Ecfisa y me devuelve el siguiente error.


---------------------------
Debugger Exception Notification
---------------------------
Project RetailPos.exe raised exception class EOleException with message 'Error al convertir una cadena de caracteres en fecha y/u hora'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Responder Con Cita
  #5  
Antiguo 06-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

A ver... proba de este modo:
Código Delphi [-]
   DataSource.DataSet.FieldByName('Fecha').AsDateTime:= Trunc(DTPFecha.Date);
Si no habrá que esperar que alguien con conocimientos de MS SQL te oriente.

Por cierto, ¿ Que componentes estas usando y de que tipo es el campo "Fecha" ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-08-2012 a las 21:46:02.
Responder Con Cita
  #6  
Antiguo 06-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
Si no habrá que esperar que alguien con conocimientos de MS SQL te oriente.

Por cierto, ¿ Que componentes estas usando y de que tipo es el campo "Fecha" ?

Saludos.

Me sigue dando el Mismo error.

Conecto la Base de datos utilizando ADOConection y el campo Fecha si lo declaro del tipo Date en la Base de datos me develve el error que mostre en uno de los mensajes anteriores y si esta declarado del tipo datetime me graba la fecha mas muchos ceros en la parte dnd va la hora.
Responder Con Cita
  #7  
Antiguo 06-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si el campo es del tipo date y tú le pasas el valor del datetime, que también es un date, no te puede salir el mensaje: "'Error al convertir una cadena de caracteres en fecha y/u hora'."

Así que estás mirando en el sitio que no corresponde, estás conectado a otra base de datos, estás pasando el valor de un tedit normal y no es un tdatetime, etc.
Responder Con Cita
  #8  
Antiguo 06-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
me sigue dando el error... y el campo es del tipo date...
Responder Con Cita
  #9  
Antiguo 06-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Da más información o pon el código fuente que lo veamos (copia->pega), que no somos adivinos
Responder Con Cita
  #10  
Antiguo 06-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
El código en donde estoy utilizando el Componente DatetimePicker es el Siguiente:

Código Delphi [-]

procedure TFFacturadeVentas.BGuardarClick(Sender: TObject);
......
TCabVentasTemp.FieldByName('Fecha').Value:= DTPFecha.Date;


procedure TFFacturadeVentas.TCabVentasTempBeforePost(DataSet: TDataSet);
....
 TCabVentasTemp.FieldByName('Fecha').Value:= DTPFecha.Date;



procedure TFFacturadeVentas.FormActivate(Sender: TObject);
...
 DTPFecha.Date:=Date; // Componente Datetimepicker




 procedure TFFacturadeVentas.DBGDatosDblClick(Sender: TObject);
 ....
 FieldByName('Fecha').Value:= DTPFecha.Date;




procedure TFFacturadeVentas.DBGDatosColExit(Sender: TObject);
....

DataSource.DataSet.FieldByName('Fecha').Value:= DTPFecha.Date;
Responder Con Cita
  #11  
Antiguo 06-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
Este es el codigo de las Dos tablas en donde intento enviar esos datos de fecha:

Código SQL [-]
CREATE TABLE [dbo].[Lin_Ventas_Temp](
    [Documento_Tipo] [nvarchar](15) NOT NULL,
    [Documento_No] [int] NOT NULL,
    [Fecha] [datetime] NOT NULL,
    [Cliente_No] [int] NOT NULL,
    [Producto_No] [int] NOT NULL,
    [Descripcion] [nvarchar](50) NOT NULL,
    [Cantidad] [decimal](25, 2) NULL,
    [Precio_de_Venta] [money] NULL,
    [Descuento] [money] NULL,
    [Porciento_Itbis] [decimal](25, 2) NOT NULL,
    [Importe_Itbis] [money] NOT NULL,
    [Grupo_Itbis] [nvarchar](7) NOT NULL,
    [Usuario] [nvarchar](50) NOT NULL,
    [Fecha_Hora_Registro] [nvarchar](22) NOT NULL




CREATE TABLE [dbo].[Cab_Ventas_Temp](
    [Documento_Tipo] [nvarchar](15) NOT NULL,
    [Fecha] [datetime] NOT NULL,
    [Documento_No] [int] NOT NULL,
    [No_Documento_Externo] [nvarchar](15) NULL,
    [Cliente_No] [int] NOT NULL,
    [Cliente_Nombre] [nvarchar](50) NOT NULL,
    [RNC] [nvarchar](11) NULL,
    [Numero_Comprobante_Fiscal] [nvarchar](19) NOT NULL,
    [Serie_NCF] [nvarchar](10) NOT NULL,
    [Importe] [money] NOT NULL,
    [Itbis] [money] NOT NULL,
    [Efectivo] [money] NOT NULL,
    [Cheque] [money] NOT NULL,
    [Tarjeta] [money] NOT NULL,
    [Transferencia] [money] NOT NULL,
    [Credito] [money] NOT NULL,
    [Descuento] [money] NOT NULL,
    [Usuario] [nvarchar](50) NOT NULL,
    [Fecha_Hora_Registro] [nvarchar](22) NOT NULL,
    [Direccion] [nvarchar](50) NOT NULL,
    [Contacto] [nvarchar](50) NULL,
    [Telefono] [nvarchar](15) NULL,
    [Fax] [nvarchar](15) NULL,
    [Tel_Movil] [nvarchar](15) NULL,
    [Tel_Oficina] [nvarchar](15) NULL,
    [PaisNombre] [nvarchar](50) NOT NULL,
    [CiudadNombre] [nvarchar](50) NOT NULL,
Responder Con Cita
  #12  
Antiguo 07-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
El Registro en la Base de Datos se Graba en el Campo Fecha de la Siguiente Manera:

2012-08-06 00:00:00.000

lo que necesito es que se grabe solo la fecha sin todos esos ceros.
Responder Con Cita
  #13  
Antiguo 07-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
Manejo de fechas en SQL Server Usando DatetimePicker

Buenas noches amigos y muchas gracias por anticipado


Utilizo Delphi 7 y Sql Server Express 2008 y para el manejo de las fechas utilizo un Componente DateTimePicker pero al momento de Guardar los datos en la base datos se guardan de la siguiente manera:

2012-08-06 00:00:00.000

lo que necesito es que se grabe solo la fecha sin todos esos ceros (El tipo de datos de este campo Fecha es Datetime).

Utilizo este código en Delphi:
Código Delphi [-]
DataSource.DataSet.FieldByName('Fecha').Value:=DTPFecha.Date;


Otro Incoveniente que tengo con esta situación es que al momento de hacer un select con esos datos no me devuelve ningún valor incluso cuando utilizo un Like%% no me muestra nada.

He probado utilizando el tipo de Datos Date en la Base de datos pero cuando el registro se va a grabar en la base de datos me da un error de conversion al tipo de datos fecha u hora.

¿Qué puedo hacer para solucionar esto?

Última edición por hondaalberto fecha: 07-08-2012 a las 03:57:52.
Responder Con Cita
  #14  
Antiguo 07-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Creo que deberias modificar el campo a tipo date solamente y luego verificar el tipo de formato que darselo al datetimepicker.
saludos
__________________
Siempre Novato
Responder Con Cita
  #15  
Antiguo 07-08-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola Creo que aquí
Código SQL [-]
[Fecha] [datetime] NOT NULL,
está creando el campo fecha del tipo fecha y hora, ¿o no? por eso requiere que también ingreses la hora cosa que si pones el DTPFecha.Date falta la hora (DTPFecha.DateTime es completo).
El tema es que si queres que solo sea fecha deberias redefinir el campo...

Me parece que es eso

Saludos

Aca algo dice - Referencia microsoft
Responder Con Cita
  #16  
Antiguo 07-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
Muchas Gracias Caral y Martin por sus respuestas he probado lo que me han indicado cambiando el Campo al tipo de datos Date y me devuelve el siguiente error:

Código Delphi [-]
---------------------------
Debugger Exception Notification
---------------------------
Project RetailPos.exe raised exception class EOleException with message 'Error al convertir una cadena de caracteres en fecha y/u hora'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------


En el datetimepicker tengo las Siguientes Propiedades configuradas

Format = 2012/08/06
Kind = dtkDate
Time = 12:00:00 AM
DateFormat =dfShort
Responder Con Cita
  #17  
Antiguo 07-08-2012
hondaalberto hondaalberto is offline
Miembro
 
Registrado: sep 2010
Ubicación: República Dominicana
Posts: 67
Poder: 14
hondaalberto Va por buen camino
Muchas Gracias Martin por tu respuesta he probado lo que me has indicado cambiando el Campo al tipo de datos Date y me devuelve el siguiente error:

Código Delphi [-]--------------------------- Debugger Exception Notification --------------------------- Project RetailPos.exe raised exception class EOleException with message 'Error al convertir una cadena de caracteres en fecha y/u hora'. Process stopped. Use Step or Run to continue. --------------------------- OK Help ---------------------------



En el datetimepicker tengo las Siguientes Propiedades configuradas

Format = 2012/08/06
Kind = dtkDate
Time = 12:00:00 AM
DateFormat =dfShort
Responder Con Cita
  #18  
Antiguo 07-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola hondaalberto.

Combiné tus dos últimos hilos bajo el título mas significativo por tener ambos el mismo contenido.

Por favor no dupliques los temas, lee el punto [6] de la [guía de estilo].

Ya sea que no recibas respuesta o las obtenidas no resuelvan tu problema, lo correcto es continuar con el hilo inicial para no duplicar la información.

Saludos y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #19  
Antiguo 07-08-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Deberías verificar los campos que quedaron almacenados en el DataSet, es decir, cuando le das con el botón derecho sobre el componente y agregas los campos (si es que lo haces) puede hacer referencia al tipo anterior, en ese caso, borra lo campos y volvé a incorporarlos. Tambien deberias intentar indicando el tipo de dato que vas a escribir.

Código Delphi [-]
TCabVentasTemp.FieldByName('Fecha').Value:= DTPFecha.Date;

Por

Código Delphi [-]
TCabVentasTemp.FieldByName('Fecha').AsDateTime:= DTPFecha.DateTime;

Proba esta animalada...

Código Delphi [-]
TCabVentasTemp.FieldByName('Fecha').AsDateTime := StrToDate(FormatDateTime('yyyy-mm-dd',DTPFecha.DateTime));

y vemos...

Ah!! tambien veo en tu mensaje que guarda la fecha separada por guion (-)y segun el formato que pasaste recien es barra (/)

Pd: Haciendo unas pruebitas y poniendo el año primero como indicas da error de conversion... si lo coloco dd/mm/yyyy anda joya

Última edición por MartinS fecha: 07-08-2012 a las 05:26:07.
Responder Con Cita
  #20  
Antiguo 07-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por hondaalberto Ver Mensaje
El Registro en la Base de Datos se Graba en el Campo Fecha de la Siguiente Manera:
2012-08-06 00:00:00.000
lo que necesito es que se grabe solo la fecha sin todos esos ceros.
Un momento, creo que estás confundido (o nos estás confundiendo a todos )

¿Cómo sabes que en la BD se graba con ese formato?, ¿no será que tú lo visualizas con alguna utilidad y se presenta con ese formato?
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
manejo del datetimepicker AquiLuis OOP 3 21-04-2010 00:41:55
Guardar Solo Hora usando DateTimePicker georgejg Conexión con bases de datos 6 23-03-2008 10:12:29
Fechas y Datetimepicker en delphi5 zcatzz Varios 16 15-05-2007 23:16:50
Between DateTimePicker com fechas iguais le4br SQL 3 23-02-2005 05:18:56
Problema usando datetimepicker con MySql tebyr MySQL 5 19-11-2004 17:38:39


La franja horaria es GMT +2. Ahora son las 22:23:44.


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