Ver Mensaje Individual
  #15  
Antiguo 24-07-2007
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Reputación: 21
nuk3zito Va por buen camino
Cita:
Empezado por JCarlosas
Para este caso me queda la duda tambien en caso de que necesite especificar la hora. ¿Como seria el formato:? ¿¿¿´yyymmdd hh:nn:ss´????

Nota: Por nn me referi a los minutos
Saludos a todos
JCarlos
OK, Ya estamos de acuerdo en que el formato ANSI para fechas es yyyymmdd.
Bueno, para horas solo existe un formato (pudiéramos hacer de cuenta que es el ANSI en vista de que no conozco otro, sáquenme del error en caso de estar mal informado) y es el hh:mm[:ss] como lo muestra el siguiente ejemplo.

Código:
  AdoQuery.SQL.Add('select * from Movimientos');
  AdoQuery.SQL.Add('where fechahora >= ''20070724 10:00''');
  AdoQuery.Open;
O sea, esta instrucción nos regresa los registros con fecha y hora mayor o igual al 24 de Julio de 2007 a las 10:00 a.m.

Sin embargo, si estamos creando estas consultas desde Delphi debo admitir que no me gusta para nada usar las horas de esta manera en el SQL Server. Lo hago como sigue:
Cuando utilizo solo fechas en un query, efectivamente utilizo el formato ANSI.
Cuando se trata de mezclar fechas y horas, yo prefiero enviarlo como un parámetro al componente, y dejar que el Delphi se encargue de hacer el trabajo sucio (Sin embargo, es válido hacerlo como especifiqué en el ejemplo anterior).
Para que no haya dudas, les pondré el ejemplo de la alternativa que pueden seguir (y se evitan de broncas porque es más engorroso construir la cadena de fecha y hora y luego enviarlo a la consulta ):
Código:
var
  dtFechaHora: TDateTime;
begin
  dtFechaHora:= EncodeDate(2007, 7, 24) + EncodeTime(10,0,0,0);
  // tambien así es válido
  dtFechaHora:= EncodeDateTime(2007, 7, 24, 10, 0, 0, 0);
  ...
  AdoQuery.SQL.Add('select * from Movimientos');
  AdoQuery.SQL.Add('where fechahora >= :FechaHora ');
  AdoQuery.Parameters.ParamByName('FechaHora').Value:= dtFechaHora;
  AdoQuery.Open;
Espero haber podido darles una orientación.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita