Le SQL ci-dessous retourne 0 enregistrements quand je sais qu'il y a des enregistrements qui correspondent - je pense que c'est la date qui me cause des problèmes.SQL renvoyant 0 enregistrements/date problème?
Voici le SQL:
exec sp_executesql N'SELECT * FROM [dbo].[QuizAnswersCompleted]
WHERE [dbo].[QuizAnswersCompleted].[QuizProfileID] = @QuizProfileID0
AND [dbo].[QuizAnswersCompleted].[DateCompleted] = @DateCompleted1
',N'@QuizProfileID0 int,@DateCompleted1 datetime',@QuizProfileID0=31,@DateCompleted1='Aug 19 2009 4:29:03:000PM'
Et voici une capture d'écran des enregistrements correspondant au DB:
Qu'est-ce que je manque ici?
Convenu. La résolution maximale d'un DateTime est de 3 millisecondes. Cela laisse environ 333 valeurs possibles entre 4: 29: 03: 000 et 4: 29: 04: 000. – Anon246
L'exécution d'une fonction sur une colonne dans le cadre d'une clause where peut entraîner des performances de requête médiocres (sur des tables plus grandes), car le serveur ne pourra pas utiliser les statistiques ou les index pour la colonne. Bien qu'il semble un peu un hack, vous pouvez utiliser le prédicat: 'WHERE [DateCompleted] BETWEEN @date AND @ dateUpper' où @date est la date d'origine que vous recherchez, et @dateUpper est une date 999ms plus tard. –
problème est le SQL est généré par SubSonic donc je ne peux pas ajuster la requête - je vais devoir trouver une solution différente qui n'utilise pas la date qui n'est pas un problème - merci pour toute l'aide! – Slee