Ver Mensaje Individual
  #21  
Antiguo 07-08-2012
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Reputación: 19
javier7ar Va por buen camino
A ver... vamos por pasos:

1 - En MS SQL Server no existia el campo de tipo Fecha (Date) solo; solo existia el campo de tipo FechaHora (DateTime) A partir de la version 2008 aparecen Date y Time por separado aparte del DateTime de siempre.
Pero si ya tenes creada la base de datos y el campo es DateTime te puede servir lo que sigue.

2 - Si queres guardar solamente la fecha y no la hora, en Delphi hace esto:
Código Delphi [-]
TCabVentasTemp.FieldByName('Fecha').AsDateTime:= INT(DTPFecha.DateTime);
Esto es porque el tipo FechaHora (DateTime en SQL Server y TDateTime en Delphi) estan representados por un numero flotante/real, y guardan la fecha en la parte entera y la hora en la parte decimal. La funcion INT() te devuelve la parte entera de un numero flotante/real

3 - Si no queres que te muestre los 00:00:00 de la hora eso ya es una cuestion de formato, pero si estan en cero quiere decir que solo tiene la fecha, y la hora esta en cero
Para que no muestre los ceros tenes dos opciones:

- Desde SQL Server:
Código SQL [-]
select convert(varchar(10), CampoFecha, 103) as FechaBonita
from Tabla
Pero ojo que ahi el tipo del campo devuelto por la consulta pasa a ser String (varchar)
Podes ver en la ayuda de la funcion Convert los diferentes formatos que tiene (103 es el formato dd/mm/aaaa)

- Desde Delphi:
En la Query/Table en la que haces la consulta, agregas el campo y le modificas la propiedad DisplayFormat le pones el valor dd/mm/aaaa (o el formato que mas te guste)
De esta forma el campo sigue siendo de tipo DateTime pero se muestra solo la parte de la fecha

Bueno, espero te sirva de ayuda esto
Saludos
Responder Con Cita