J'essaie de convertir la date au format String en date sql et en fonction de cette base de données de requête pour obtenir le résultat. Date au format de la chaîne est: 2011-08-11 09:16:00.0
Je suis en train de convertir à jour sql en utilisant la méthode:Problème avec la conversion de chaîne à date
public static convertStringToSqlDate(String dateString){
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date parsedUtilDate = formater.parse(dateString);
java.sql.Date sqlDate= new java.sql.Date(parsedUtilDate.getTime());
return sqlDate;
}
La date résultante est: 2011-08-11
mais tout en faisant la requête que je suis ne pas obtenir la sortie désirée
Le code complet est
def startDate = params. startDate
def endDate = params. endDate
def formattedTripStartDate =Trip.convertStringToSqlDate(startDate);
def formattedTripEndDate =Trip.convertStringToSqlDte(endDate);
def listOfContracts = Rule.findAll("FROM Rule WHERE name LIKE ? AND client_id = ? AND STR_TO_DATE(contract_begins,'%Y-%m-%d')<= ? AND STR_TO_DATE(contract_terminates,'%Y-%m-%d')>= ?",["%"+q_param+"%",clientId,formattedTripStartDate,formattedTripEndDate])
Où vais-je tort?
Dans la base de données les contract_begins sont stockées comme: 2011-08-23 00:00:00
Classe de domaine du contrat est
class Contract extends Rule {
Date contractBegins
Date contractTerminates
int runningDays
Double contractValue
Double estimatedRevenue
Double actualRevenue
static constraints = {
contractBegins(nullable:true)
contractTerminates(nullable:true)
runningDays(nullable:true)
contractValue(nullable:true)
estimatedRevenue(nullable:true)
actualRevenue(nullable:true)
}
}
« Sting » est une rock star vieillissante. Vous voulez probablement dire "String" ... –
pourquoi stocker la date comme chaîne dans DB –
comme Jigar Joshi a dit, vous devriez stocker des dates comme dates dans votre DB – njzk2