皆さんこんにちは!こんばんは!!ロト君です。超~~~久しぶりの更新になりますww
最近忙しくて、中々ブログサイトを更新、出来ていませんでした!!すみません>m<))汗
さて、今回は。VS2022 VBでSQLを使っていますが、BETWEEN句で気づきがありましたので記載いたします。
1.そもそもBETWEEN句とは?
そもそも、BETWEEN句とは、何なのでしょか??
BTWEEN句とは、A~Bまでの間を抽出する句となります。
簡単に言いますと、2022年01月01日~2022年01月31日までと指定すると、こんな感じです。
SELECT T1.amount_at FROM t_buy_list AS T1 WHERE T1.amount_at Between #" & dtp_amount_at_b.Value & "# And #" & dtp_amount_at_e.Value & "#"
上記の様に記載すると、テーブル(t_buy_list)からamount_atを検索し、amount_atのデータを、dtp_amount_b~dtp_amount_eの期間中を抽出しなさい。と、言う感じになります。
2.今回の気づき
然し乍ら、今回の気づきとして先に記載したコードでは、その日(2日目だけ!とか)が抽出できません。
SELECT T1.amount_at FROM t_buy_list AS T1 WHERE T1.amount_at Between #" & dtp_amount_at_b.Value & "# And #" & dtp_amount_at_e.Value & "#"
私の感覚では、A<=X>Bの様な数式になると思ってるので、A<=X>Aならば、X=Aになると思いますが、実際にはなりません。
因みに、VB中のdtpは、DateTimePickerです。その、dtpは文字通り、時間も含む為バグってるようです。
その問題を解決したSQLが下記のモノです。
SELECT T1.amount_at FROM t_buy_list AS T1 WHERE T1.amount_at Between #" & Format(dtp_amount_at_b.Value, "yyyy/MM/dd") & "# And #" & Format(dtp_amount_at_e.Value, "yyyy/MM/dd") & "#")
注目するところは、Format(xxxx,”yyyy/MM/DD”)の所です。この場所で時間を省きます。
先に挙げたようにdtpでは時間も扱うのでその記載した見えない時間もデータベースが保持してる様なので、工夫しました。
上記の様にすれば、任意のその日の結果が抽出出来ました!!
3.まとめ
まだ、良い記載方法があるかと思いますが、私は上記の方法で解決しました!
VB関係で困った際はよく、VB中学生さんを使っています。
お困りの方は、VB中学生さんやVBレスキューさんなどで、調べても良いかもですね!!
では、今回はここまでで!(*”▽”)ノシ
コメントを残す