投稿者 HiDE-Ada  (社会人) 投稿日時 2014/2/15 17:52:46
回答がつかないようなので、中途半端ですがヒントを
Datetime型と思われる登録日時でも基本は同じbetweenが使えないわけではないです。
つまり
登録日時 between '2013/04/01' and '2014/03/30'
とすると、
2013/04/01 00:00:00:000~2014/03/30 00:00:00.000
が検索できると思います…
でも、後ろが00:00:00.000では問題なので
登録日時 between '2013/04/01' and '2014/03/30 23:59:59.999'
とできればよさそうです。

実際の検索で秒まで指定して検索したいのか?
それとも年月日だけで済ませたいのか?
あるいはある1日だけを指定することもあるのか?
でかわってきます。
登録日時 = '2014/01/01'
では、'2014/01/01 00:00:00.000'に一致するものだけしか
検索できないようなので、1日であっても
登録日時 between '2014/01/01' and '2014/01/01 23:59:59.999'
となるように、日付の後ろに'23:59:59.999'を付加すればよいと思います。

まぁ秒以下がめんどうなので、あるサイトでは
登録日時 >= '2014/01/01' AND 登録日時 < '2014/01/02'
として、次の日(当然計算が必要ですが)より前を条件とする
書き方を紹介してました。

SQLServerならCONVERT関数を使って
CONVERT(NVARCHAR, 登録日時, 111) = '2014/01/02'

CONVERT(NVARCHAR, 登録日時, 111) between '2014/01/02' and '2014/01/31'
という書き方ができなくもないですが、レスポンスを気にする場合は
カラムを関数処理することは反対されると思います。
ちなみに111はYYYY/MM/DD、11ならYY/MM/DDです。

プログラムはこんな問題ばかりなので、もっと検索して回答を
見つけられるようになりましょう。
「SQLServer 検索 日付」で検索するといっぱい見つかります。
http://chaichan.lolipop.jp/vbtips/VBMemo2006091302.htm