Ver Mensaje Individual
  #14  
Antiguo 09-05-2008
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Reputación: 19
javier7ar Va por buen camino
Por las dudas si te sirve te aclaro un par de cosas:

Cita:
que cosas no ??? si solo estaba utilizando el Date.. y no el Time...
en Delphi el tipo Date esta definido asi:
Código Delphi [-]
type TDate = type TDateTime;
por lo que siempre es TDateTime (fecha y hora) y en SQL Server tambien es fecha y hora siempre.

si queres pasar como parametro solo la fecha sin la hora lo podes hacer asi:
Código Delphi [-]
Datos.AQ_VOrden.Parameters[0].AsDateTime := INT(vDes.Date);
Como el Tipo TDateTime internamente se guarda como un float donde la parte entera es la fecha y la parte decimal es la hora, al hacer el INT() te quedas solo con la parte entera que es la fecha

Con respecto a seleccionar solo la fecha de un campo de DateTime de SQL Server tenes dos opciones:
- Si el problema es solo mostrar, podes asignarle un formato al campo para que muestre solo la fecha. Esto es haciendo doble clic sobre la query, seleccionas el campo de tipo DateTime que queres mostrar solo la fecha y en la propiedad DisplayFormat pones dd/mm/yyyy y con eso solo va a mostrar la fecha (sigue teniendo la hora, pero no la muestra por esta mascara que le pones)

- Si por alguna razon nesesitas que el campo que seleccionas solo tenga la fecha y que sea de tipo DateTime lo podes hacer en SQL Server definiendo una funcion que le quite la parte de la hora. Sinceramente yo no encontre una funcion en SQL Server 2000 que hiciera esto, asi que la hice yo y aca te la dejo:
En el Administrador Corporativo del SQL Server 2000, en la parte de Funciones Definidas por el Usuario, agregas una nueva funcion con lo siguiente:

Código SQL [-]
CREATE FUNCTION dbo.SoloFecha(@Fecha datetime)
RETURNS datetime AS  
BEGIN 
    declare @FechaAux datetime
    
    set @FechaAux = @Fecha

    set @FechaAux = dateAdd(hh, -datePart(hh, @Fecha), @FechaAux)
    set @FechaAux = dateAdd(mi, -datePart(mi, @Fecha), @FechaAux)
    set @FechaAux = dateAdd(ss, -datePart(ss, @Fecha), @FechaAux)
    set @FechaAux = dateAdd(ms, -datePart(ms, @Fecha), @FechaAux)

    return @FechaAux
END

luego en tu consulta haces
Código SQL [-]
select dbo.SoloFecha(Ord_Fecha) as Fecha

tambien lo podes usar en el where para que cuando filtres solo tenga en cuenta la fecha y no la hora

Código SQL [-]
Where dbo.SoloFecha(Ord_Fecha) Between dbo.SoloFecha(:Var1) And dbo.SoloFecha(:Var2)

Bueno, espero que te sirva y que no sea tarde ya
Saludos
Responder Con Cita