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

推薦する

2018 年にリリースされる Apache Spark 2.4 の新機能は何ですか?

この記事は、2018 年 9 月 19 日に Adob​​e Systems Inc で開催された ...

antd ツリーと親子コンポーネント間の値転送問題について (React のまとめ)

プロジェクト要件: 製品ツリー ノードをクリックすると、そのノードのすべての親ノードが取得され、表に...

入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド

HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...

ウェブデザインの詳細分析に関する詳細な議論

設計業務では、設計者がレビューに参加したり、リーダーの一部が設計案の詳細が足りないと言っているのをよ...

vue-cli 設定では Vuex の完全なプロセスレコードを使用します

目次序文インストールと使用方法モジュラー管理Vuex の状態永続性要約する序文Vue 開発では、ユー...

JavaScript で文字列を数値に変換する方法

目次1.parseInt(文字列、基数) 2. 数値() 3.parseFloat()主なメソッドは...

mysql5.7のインストールとNavicateの長期無料利用の実施手順

(I) mysql5.7のインストール: ❀詳細:無料のグリーンバージョン5.7のインストール方法は...

Tomcat の 404 エラーの解決方法の詳細な説明

Tomcat テストで 404 問題が発生します。問題は次のとおりです。 HTTP ステータス 40...

カスタム変数を使用した MySQL クエリの最適化

目次並べ替えクエリの最適化変更されたばかりのデータ行を繰り返し取得しないようにする遅延ロードされた結...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

MySQLの関連ロックについての簡単な理解

この記事は主にInnoDBのロックに関する知識を素早く理解してもらうことを目的としています。 Roc...

HTML テーブルタグについての簡単な説明

主にその構造といくつかの重要な特性について説明します。少しずつ改善しながら紹介していきます。 1) ...

ES6 における Object.assign() の使い方の詳細な説明

目次2. 目的2.1 オブジェクトにプロパティを追加する2.3 オブジェクトの複製2.4 複数のオブ...

K8Sの高度な機能を理解するための記事

目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...