Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
複数条件のプログラムを作りたい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=15515#CommentId38711
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
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