![]() |
order by no funciona con datetime...
Hola a todos,
quiero sacar un listado agrupado por dia, el campo fecha es un dateTime de sql server y a la hora de formar el grupo en QuickReport he puesto un grupo con la expresion="fecha" --> el caso es que no agrupa bien, mas correctamente es que no me crea los grupos el hacer preview. dado que el campo datetime es un numero real, he probado a eliminar la parte decimal para solo quedarme con el dia,mes,año asi pues en la query.sql.add( "select * from tabla order by cast (fecha as Integer) " el problema es que la query no saca bien ordenados los registros: 38473 2005-05-03 11:35:09.577 38473 2005-05-03 11:43:40.840 38474 2005-05-03 14:07:00.000 <---- es del dia 03/05 y me pone 38474 ?¿? 38474 2005-05-03 15:30:00.000 <---- es del dia 03/05 y me pone 38474 ?¿? 38474 2005-05-03 16:45:40.030 <---- es del dia 03/05 y me pone 38474 ?¿? 38474 2005-05-03 18:00:00.000 <---- es del dia 03/05 y me pone 38474 ?¿? 38474 2005-05-04 08:30:00.000 38474 2005-05-04 09:52:07.983 38474 2005-05-04 10:08:07.217 38474 2005-05-04 11:19:12.967 por lo que en el listado lo obtengo mal ordenados. Ademas: No se como decirle al QRGroup que la expresion es para agrupar por dia, ya que no me crea grupos por dia, simplemente crea uno y me saca todos los registros colgados de el. ¿Sabeis como se agrupa por dia en un informe de QR5 con un campo fecha de tipo DateTime??? Gracias,david. |
error por culpa del redondeo...
Ya se porque es, es por culpa del redondeo ya que si uso la funcion:
select round( cast(fecha as money) ,0,1) as dia, * from tabla order by round( cast(hora_inicio as money) ,0,1), etc funciona bien. 1º paso la fecha (dateTime) a numero con 4 decimales 2º trunco el valor con round(dato,0,1) nota: si pongo cast(fecha as numeric) no va bien ya que redondea Cita:
|
La franja horaria es GMT +2. Ahora son las 21:46:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi