1
當我知道有匹配的記錄時,下面的SQL返回0條記錄 - 我認爲這是導致我出現問題的日期。返回0個記錄/日期問題的SQL?
這裏是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'
這裏是相匹配的數據庫,該記錄的截屏:
缺少什麼我在這裏?
同意。 DateTime的最大分辨率是3毫秒。在4:29:03:000和4:29:04:000之間留下了大概333個可能的值。 – Anon246 2009-08-19 21:36:47
作爲where子句的一部分在列上運行函數會導致較差的查詢性能(在較大的表上),因爲服務器將無法使用列的統計信息或索引。雖然看起來有點破解,但可以使用謂詞:WHERE [DateCompleted] BETWEEN @date AND @ dateUpper',其中@date是您之後的原始日期,而@dateUpper是日後999ms的日期。 – 2009-08-19 21:54:41
問題是SQL是由SubSonic生成的,所以我無法調整查詢 - 我將不得不想出一個不使用日期而不是問題的不同解決方案 - 感謝所有幫助! – Slee 2009-08-19 23:20:07