Datas Hibernate SQLServer

0 respostas
andre_guitar7

Muuito estranho, tavez eu esteja usando o Calendar incorretamente:

Eu quero procurar todos os registros de um dia inteiro, faço dessa forma:

Calendar calendarInitial = new GregorianCalendar(); calendarInitial.setTime( new Date() ); calendarInitial.set( Calendar.HOUR , 0 ); calendarInitial.set( Calendar.MINUTE , 0 ); calendarInitial.set( Calendar.SECOND , 0 ); Calendar calendarFinal = new GregorianCalendar(); calendarFinal.setTime( new Date() ); calendarFinal.set( Calendar.HOUR , 23 ); calendarFinal.set( Calendar.MINUTE , 59 ); calendarFinal.set( Calendar.SECOND , 59 );
E no Criteria do Hibernate faço:

criteria.add( Expression.ge( "dateRegister" , calendarInitial.getTime() ) ); criteria.add( Expression.le( "dateRegister" , calendarFinal.getTime() ) );
Ele pega os registros do dia anterior desde as 12 horas (meio dia) até às 12 horas (meio dia) de hoje. É muito estranho. pra funcionar corretamente tenho que fazer assim:

Calendar calendarInitial = new GregorianCalendar(); calendarInitial.setTime( new Date() ); calendarInitial.set( Calendar.HOUR , -12 ); calendarInitial.set( Calendar.MINUTE , 0 ); calendarInitial.set( Calendar.SECOND , 0 ); Calendar calendarFinal = new GregorianCalendar(); calendarFinal.setTime( new Date() ); calendarFinal.set( Calendar.HOUR , 12 ); calendarFinal.set( Calendar.MINUTE , 0 ); calendarFinal.set( Calendar.SECOND , 0 );
Isso no SQLServer, usando o driver da Microsoft…

É normal isso? Estou usando o Calendar corretamente??

Obrigado…

Criado 7 de julho de 2006
Respostas 0
Participantes 1