Una tabella ha una colonna data/ora. Un valore di esempio potrebbe essere 2010-03-30 13:42:42. Con Hibernate, eseguo una query di intervallo Restrictions.between ("column-name", fromDate, toDate).Query di date con Hibernate nella colonna Timestamp in PostgreSQL
La mappatura Hibernate per questa colonna è la seguente.
<property name="orderTimestamp" column="order_timestamp" type="java.util.Date" />
Diciamo, voglio scoprire tutti i record che hanno la data 30 marzo 2010 e il 31 marzo 2010. Una query gamma in questo campo viene fatto come segue.
Date fromDate = new SimpleDateFormat("yyyy-MM-dd").parse("2010-03-30");
Date toDate = new SimpleDateFormat("yyyy-MM-dd").parse("2008-03-31");
Expression.between("orderTimestamp", fromDate, toDate);
Questo non funziona.
La query viene convertita in data e ora come "2010-03-30 00:00:00" e "2010-03-31 00:00:00". Pertanto, tutti i record per il 31 marzo 2010 vengono ignorati.
Una soluzione semplice a questo problema potrebbe essere la data di fine "2010-03-31 23:59:59". Ma vorrei sapere se esiste un modo per associare solo la parte della data della colonna timestamp.
Inoltre, è Expression.between()
comprensivo di entrambi i limiti? La documentazione non getta alcuna luce su questo.
Credo che tra sempre sia esclusivo su entrambi i limiti. Perché non rimuovi solo 1 millisecondo e aggiungi 1 millisecondo a ciascuno di essi? – jishi
@jishi dipende dal database (e credo che la maggior parte del tempo includa). –
Shashikant potresti risolvere questo? – changeme