sql >> データベース >  >> RDS >> Mysql

MySQLで2つの日付の間のレコードを取得する方法

    多くの場合、レポートと分析のために2つの日付の間のデータを取得する必要があります。組み込み関数がなくても、MySQLで2つの日付の間のレコードを取得するのは非常に簡単です。これが、MySQL、PostgreSQL、SQLServerの2つの日付の間のレコードを選択するためのSQLです。

    MySQLで2つの日付の間のレコードを取得する方法

    これが、MySQLで2つの日付の間のレコードを取得するためのSQLです。

    次のテーブルがあるとしますsales(order_date、sale)

    mysql> create table sales(order_date date,sale int);
    
    mysql> insert into sales(order_date,sale)
         values('2020-06-01',250),
         ('2020-06-0',350),
         ('2020-06-02',400),
         ('2020-06-03',250),
         ('2020-06-04',200),
         ('2020-06-05',180),
         ('2020-06-06',150),
         ('2020-06-07',650),
         ('2020-06-08',500),
         ('2020-06-09',150);
    
    mysql> select * from sales;
    +------------+------+
    | order_date | sale |
    +------------+------+
    | 2020-06-01 |  250 |
    | 2020-06-00 |  350 |
    | 2020-06-02 |  400 |
    | 2020-06-03 |  250 |
    | 2020-06-04 |  200 |
    | 2020-06-05 |  180 |
    | 2020-06-06 |  150 |
    | 2020-06-07 |  650 |
    | 2020-06-08 |  500 |
    | 2020-06-09 |  150 |
    +------------+------+
    

    ボーナスリード:過去24時間のレコードを取得する方法

    MySQLで2つの日付の間の行を取得する方法

    これは、MySQLで2つの日付の間のレコードを取得するためのSQLクエリです。 2つの日付の間の行を取得するには、数学演算子を使用する方法と、BETWEEN関数を使用する方法の2つがあります。これら両方の方法を見ていきます。

    ボーナスリード:MySQLで過去15日間のレコードを取得する方法

    数学演算子の使用

    order_dateのレコードを取得するとします。 2020-06-02と2020-06-06の2つの日付の間にあります。数学演算子を使用して2つの日付の間のデータを取得するSQLは次のとおりです。

    mysql> select * from sales
         where order_date>='2020-06-02'
         and order_date<='2020-06-06';
    +------------+------+
    | order_date | sale |
    +------------+------+
    | 2020-06-02 |  400 |
    | 2020-06-03 |  250 |
    | 2020-06-04 |  200 |
    | 2020-06-05 |  180 |
    | 2020-06-06 |  150 |
    +------------+------+
    

    上記のクエリでは、order_dateが2020-06-02以降および2020-06-06以前のレコードを選択します。>、<、=、<>などの他の数学演算子を日付とともに使用することもできます。このSQLクエリを使用して、PostgreSQL、SQL Server、およびOracleの2つの日付の間のレコードを選択することもできます。

    ボーナスリード:MySQLの各グループで最初のレコードを取得する方法

    特定の日付から現在の日付までのレコードを選択する場合は、 current_dateのようなシステム関数を使用できます。 またはnow() クエリで。

    mysql> select * from sales
         where order_date>'2020-06-02'
         and order_date<current_date;
    +------------+------+
    | order_date | sale |
    +------------+------+
    | 2020-06-03 |  250 |
    | 2020-06-04 |  200 |
    | 2020-06-05 |  180 |
    | 2020-06-06 |  150 |
    | 2020-06-07 |  650 |
    | 2020-06-08 |  500 |
    +------------+------+
    

    BETWEEN演算子の使用

    BETWEEN演算子を使用して2つの日付の間のデータを選択することもできます

    mysql> select * from sales
         where order_date
         BETWEEN '2020-06-02' and '2020-06-06';
    +------------+------+
    | order_date | sale |
    +------------+------+
    | 2020-06-02 |  400 |
    | 2020-06-03 |  250 |
    | 2020-06-04 |  200 |
    | 2020-06-05 |  180 |
    | 2020-06-06 |  150 |
    +------------+------+
    

    レコードを選択する際、BETWEENオペレーターは、言及した2つの日付の間のレコードと、2つの日付のレコードを含めます。

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. グーグルコンピューティングエンジンのpostgresサーバーに接続する

    2. SQLServerデータベースで主キー制約のないテーブルのリストを取得する方法-SQLServer/T-SQLチュートリアルパート58

    3. MariaDBでのCONCAT_WS()のしくみ

    4. PentahoDataIntegrationおよびBAServerツールへのMicrosoftSQLServerJDBCドライバーのインストール