19

次のクエリがあります。

SELECT * FROM LOGS 
WHERE CHECK_IN BETWEEN CONVERT(datetime,'2013-10-17') AND CONVERT(datetime,'2013-10-18')

このクエリは結果を返しませんが、次のクエリは結果を返します。

SELECT * FROM LOGS WHERE CHECK_IN >= CONVERT(datetime,'2013-10-17')

最初のクエリが結果を返さないのはなぜですか? 私が間違いを犯した場合は、plsが私を修正してください.

4

5 に答える 5

5

2 番目のクエリは 17 番目の結果を返しますか、それとも 18 番目の結果のみを返しますか?

最初のクエリは、17 日または 18 日の午前 0 時の結果のみを返します。

代わりにこれを試してください

select * 
from LOGS 
where check_in >= CONVERT(datetime,'2013-10-17') 
and check_in< CONVERT(datetime,'2013-10-19')
于 2013-10-18T14:15:54.810 に答える
2

どちらのクエリにもエラーはありません。私の推測は次のとおりです。

  • 2013-10-17' から '2013-10-18' の間にレコードはありません
  • 2 番目のクエリが返すレコードは、'2013-10-18' の後に存在します
于 2013-10-18T14:15:42.903 に答える