2011-06-11 4 views
1

je veux obtenir le voyage qui est arrivé entre contratStartdate et contratEndDate + 1day. mais ce code suivant me donne une erreur.comment ajouter un jour à sql date?

def tripsForThisContract = Trip.executeQuery("From Trip where contract_id = ? AND startDate between ? AND DATE_ADD('?',INTERVAL 1 DAY)",[contractId,contractStarts,contractEnds]) 

aidez-moi s'il vous plaît.

+0

Pouvez-vous montrer l'erreur et la requête générée? – Teneff

+0

[2011-06-11 14: 08: 59: 937] ERREUR org.hibernate.hql.PARSER ### ligne 1: 112: jeton inattendu: 1 [2011-06-11 14: 08: 59: 953] ERREUR groovy.grails.web.errors.GrailsExceptionResolver ### jeton inattendu: 1 près de la ligne 1, colonne 112 [De com.springpeople.steer.trips.Trip où contract_id =? ET startDate entre? AND DATE_ADD ('?', INTERVAL 1 DAY)] org.hibernate.hql.ast.QuerySyntaxException: jeton inattendu: 1 près de la ligne 1, colonne 112 [De com.springpeople.steer.trips.Trip où contract_id =? ET startDate entre? AND DATE_ADD ('?', INTERVAL 1 DAY)] \t à $ Proxy12.createQuery (source inconnue) – maaz

Répondre

3

Vous devriez faire face à la date dans votre code. Hql n'a pas toutes les fonctions de la base de données sous-jacente.

Votre code devrait être quelque chose comme ceci:

Trip.executeQuery(
"From Trip where contract_id = ? AND startDate between ? AND ?)" 
,[contractId,contractStarts, ++contractStarts]) 
Questions connexes