MySQL における between の境界と範囲の説明

MySQL における between の境界と範囲の説明

境界範囲間のmysql

間の範囲は両側の境界値を含む

例: 3 から 7 までの id は、id >=3 かつ id<=7 と同等です。

範囲は境界値を含まない

例: id が 3 から 7 の間ではない場合、id < 3 または id>7 と同等です。

SELECT * FROM `test` where id BETWEEN 3 and 7;
SELECT * FROM `test` where id>=3 and id<=7; と同等です。
-----------------------------------------------------------
SELECT * FROM `test` where id NOT BETWEEN 3 and 7;
SELECT * FROM `test` where id<3 or id>7; と同等です。

日付の境界間のmysqlの問題に注意してください

境界の問題:

mysql、開始日と終了日の間には開始日が含まれ、終了日は含まれません

例えば:

'2018-01-22' から '2018-01-30' の間

開始日は 2018-01-22 00:00:00.0 で、終了日は 2018-01-29 23:59:59.59 です。

テーブルのCREATE_DATEはvarchar(21) DEFAULT NULL COMMENT 'time'です。

CREATE_DATE に保存される値は、年-月-日 時間:分:秒:0 です。例: 2018-01-29 23:45:35.0

SELECT * FROM Test a WHERE a.CREATE_DATE BETWEEN '2018-01-22' AND '2018-01-30'   
ORDER BY a.CREATE_DATE desc 

テーブル a から * を選択し、 a.CREATE_DATE が '2018-01-22' かつ '2018-01-30' であることを確認します。   
ORDER BY a.CREATE_DATE desc
    2018-01-29 23:45:35.0 20180129
    2018-01-29 23:45:33.0 20180129
    2018-01-29 00:10:58.0 20180129
    2018-01-29 00:10:45.0 20180129
    2018-01-28 23:42:23.0 20180128
    2018-01-28 23:39:39.0 20180128
テーブル a から * を選択し、 a.CREATE_DATE が '2018-01-22' かつ '2018-01-29' であることを確認します。   
ORDER BY a.CREATE_DATE desc
    2018-01-28 23:42:23.0 20180128
    2018-01-28 23:39:39.0 20180128
    2018-01-28 00:13:22.0 20180128
    2018-01-28 00:13:19.0 20180128
    2018-01-27 23:23:02.0 20180127
    2018-01-22 00:09:59.0 20180122
    2018-01-22 00:09:56.0 20180122
    2018-01-22 00:01:53.0 20180122

発生したその他の問題:

別のテーブルtest2には時間を保存するためのフィールドがあります: `REPORTTIME` varchar(45) DEFAULT NULL、

このフィールドに格納される値は次のとおりです。

例1:

bips_hpd_helpdesk a から * を選択 WHERE str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d') 
BETWEEN '2018-01-16' AND '2018-01-27' ORDER BY from_unixtime(a.REPORTTIME,'%Y-%m-%d') DESC ;

結果1:

結果から、27日のデータが取得されたことがわかります。処理時間に時間、分、秒が含まれていない可能性があります。

例2:

bips_hpd_helpdesk a から * を選択 WHERE str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d') 
str_to_date('2018-01-16','%Y-%m-%d') と str_to_date('2018-01-27','%Y-%m-%d') の間

結果2:

問題が見つかりました: ミリ秒の値を時間に変換すると、ここで保存されたミリ秒の値は時間、分、秒を保存しないことがわかりました。

from_unixtime(a.REPORTTIME,'%Y-%m-%d') AS reportTime,a.REPORTTIME,  
             str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d %h:%i:%s') AS reportTime22
        FROM test a WHERE str_to_date(from_unixtime(a.REPORTTIME,'%Y-%m-%d'),'%Y-%m-%d %h:%i:%s') 
        str_to_date('2018-01-16','%Y-%m-%d %h:%i:%s') と str_to_date('2018-01-27 %h:%i:%s','%Y-%m-%d') の間
     #subdate(curdate(),date_format(curdate(),'%w')-1) および subdate(curdate(),date_format(curdate(),'%w')-8)
        ORDER BY from_unixtime(a.REPORTTIME,'%Y-%m-%d') DESC;

閲覧時間の値:

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL における BETWEEN 句の使用法の詳細な説明
  • MySQL の WHERE 句で BETWEEN と IN を使用するチュートリアル
  • MySQLで日付を比較する方法の詳細な説明

<<:  CSSはメッセージパネルをスライドするWebコンポーネント機能を実装します

>>:  Vue を使用して Web ページのスクリーンショットを撮る方法をご存知ですか?

推薦する

Docker Docker の保存場所を変更する コンテナイメージのサイズ制限を変更する操作

これは新しいバージョンではもう不可能なようで、推奨されません。そうでない場合は、ソフト リンクを直接...

JavaScript 配列と非配列オブジェクトのディープ クローンとシャロー クローンの原則の詳細な説明

目次シャロークローニングとディープクローニングとは何ですか? 1. アレイのクローンを作成する1.1...

Vueは視覚的なドラッグページエディタを実装します

目次ドラッグアンドドロップの実装ドラッグイベントドラッグして開始リリースゾーンでの移動境界処理、角度...

位置のいくつかの巧妙な応用の詳細な説明:sticky スティッキーポジショニング

背景: position:sticky はスティッキー配置とも呼ばれます。スティッキー配置の要素は、...

CSS3はウェブサイトの製品表示効果図を実現します

この記事では、CSS3 を使用した Web サイトの商品表示の効果を紹介し、皆さんと共有します。詳細...

Nest.js のハッシュと暗号化の例の詳細な説明

0x0 はじめにまず、ハッシュアルゴリズムとは何でしょうか?メッセージやセッション項目など、一部のデ...

mysqlのデータディレクトリ内のファイルを直接コピーしてデータを復元する実装

mysqlはデータディレクトリ内のファイルをコピーしてデータを復元します背景: MySQL がクラッ...

MySQL におけるデータタイムとタイムスタンプの違い

MySQL には 3 つの日付型があります。日付(年-月-日)テーブル test(hiredate ...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

docker ポートを追加して dockerfile を取得する方法

DockerイメージからDockerfileを取得する docker 履歴 --format {{....

水平スクロールバーを実装する2つの方法の例

序文:プロジェクトの開発中に、1 行にナビゲーション バーが多すぎる場合に水平スクロール バーを実装...

VMware WorkStation 14 pro インストール Ubuntu 17.04 チュートリアル

この記事では、VMware Workstation14 ProにUBuntu17.04をインストール...

Mysql 8.0 のインストールとパスワードのリセットの問題

Mysql 8.0 のインストールの問題とパスワードのリセット1: MySqlをダウンロードする公式...

MySQL の例 DTID マスタースレーブ原理の分析

目次1. GTIDの基本概念2. GTIDの利点3. GTIDの仕組み4. 従来のレプリケーションに...

HTMLの空リンクの役割についての簡単な説明

空のリンク:つまり、ターゲット エンドポイントとのリンクはありません。フォーマット <a hr...