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 ページのスクリーンショットを撮る方法をご存知ですか?

推薦する

デザイン理論:人の心を理解する方法

<br />かつて、仏印と東坡氏が仏教について雑談していたとき、東坡氏が突然こう言った。...

RR および RC 分離レベルでのインデックスとロックのテスト スクリプトのサンプル コード

基本概念現在の読み取りとスナップショットの読み取りMVCC では、読み取り操作はスナップショット読み...

MySQL テーブルを作成するためによく使用される SQL ステートメントの概要

最近、私はプロジェクトに取り組んでおり、背景を記述するために SQL ステートメントを使用する必要が...

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力す...

SSH経由でリモートLinuxシステムでコマンドを実行する方法

場合によっては、リモート マシンでいくつかのコマンドを実行する必要があることがあります。これが時々行...

HTML テーブル マークアップ チュートリアル (18): テーブル ヘッダー

<br />ヘッダーはテーブルの最初の行を参照します。ヘッダー内のテキストは中央揃えで太...

Vue echarts は水平棒グラフを実現します

この記事では、水平棒グラフを実現するためのvue echartsの具体的なコードを参考までに共有しま...

MySQLデータを復元する2つの方法

1. はじめに少し前、開発者がテスト環境や本番環境で誤った操作をし、データベースを誤って削除/更新し...

Dockerfile における VOLUME と docker -v の違い

Dockerfile でのボリュームのマウントと docker -v コマンドによるマウントには明ら...

Linuxでawkを使用する方法の詳細な説明

awk を学ぶ前に、sed、grep、tr、cut などのコマンドを学んでおく必要があります。これら...

bashコマンドの使い方の詳細な説明

Linux では、基本的に vi エディタのように「.sh」拡張子を持つテキストの処理と実行を記述す...

さようなら Docker: 5 分で Containerd に移行する方法

Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である ...

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

ブラウザでTIF形式の画像を表示する方法

ブラウザはTIF形式の画像を表示しますコードをコピーコードは次のとおりです。 <html>...