同人誌PDF版 販売中!!

スポンサー

【解説】VS2022 VB SQL BETWEEN句について考えてみたよぉ!

SQL
SQL

皆さんこんにちは!こんばんは!!ロト君です。超~~~久しぶりの更新になります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レスキューさんなどで、調べても良いかもですね!!

では、今回はここまでで!(*”▽”)ノシ

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


ABOUT US
lotokunn管理人 / エンジニア / 取締役
同人サークル『L's Core』の設立者。 コミックマーケットに多数参戦。 PC・アニメオタク・・・。 ガジェット大好き!!