J'ai un champ timestamp
dans une table MySQL. Je suis en train d'interroger la table à l'aide de la requête SQL suivante:Numéro de date MySQL et Coldfusion
SELECT login_mode,count(login_mode) as total
FROM login_activity,ccac_registered_users
WHERE login_activity.student_id=ccac_registered_users.student_id
AND login_date >= STR_TO_DATE('01/16/2013','%m/%d/%Y')
AND login_date <= STR_TO_DATE('01/17/2013','%m/%d/%Y')
GROUP BY login_mode
La requête fonctionne très bien quand je le lance sur Mysql directement, mais ne fonctionne pas de l'application coldfusion. Je suis perplexe! Le code pour générer les dates est:
login_date >= STR_TO_DATE(
'#DateFormat(CreateODBCDate(startDate),'mm/dd/yyyy')#'
, '%m/%d/%Y'
)
Et l'erreur de ColdFusion est la suivante:
Vous avez une erreur dans votre syntaxe SQL; vérifier le manuel que correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser près de '01/16/2013 '', ''% m /% d /% Y '') ET date_de_connexion < = STR_TO_DATE ('' 17/01/2013 '', '' % m /% d/» à la ligne 1
Quel est le problème ici?
Modifier
Je viens jeté sql que CF est essayer d'exécuter
SELECT login_mode,count(login_mode) as total
FROM login_activity,ccac_registered_users
WHERE login_activity.student_id=ccac_registered_users.student_id
AND login_date >= STR_TO_DATE(''01/16/2013'',''%m/%d/%Y'')
AND login_date <= STR_TO_DATE(''01/17/2013'',''%m/%d/%Y'')
Il existe des guillemets supplémentaires autour de la date et ils sont à l'origine du problème. Si j'enlève les supplémentaires que j'ai ajoutés du code, alors rien ne sera ajouté.
@Leigh La citation n'est pas manquante. C'est à la fin de la paranthésis. Je vais essayer d'utiliser simplement CreateODBCDate. AFAIK, ça ne fonctionnait pas avec mysql quand j'essayais le dernier. –
Oh oui, vous avez raison. Mes yeux ont manqué une citation. – Leigh
Vous pouvez également utiliser BETWEEN dans votre requête. –