ホームページ  >  記事  >  データベース  >  mysqlで期間をクエリする方法

mysqlで期間をクエリする方法

coldplay.xixi
coldplay.xixiオリジナル
2020-10-28 15:34:226130ブラウズ

Mysql クエリの期間方法: 1. 従来の方法、つまり開始時刻と終了時刻を指定する; 2. UNIX タイムスタンプ、各時刻は一意の UNIX タイムスタンプに対応し、関数は [UNIX_TIMESTAMP(datetime )] です。 ]。

mysqlで期間をクエリする方法

Mysql クエリ期間メソッド:

メソッド 1: 従来のメソッド、つまり開始時刻と終了時刻を指定し、「between」または「8a43c7dd0f94d2c178c3c05657689ef4」を使用して条件を設定します。たとえば、2010 年 3 月 1 日から 2010 年 3 月 2 日までのデータ件数をクエリするには、次のようにします。

select count(*) from sometable where datetimecolumn>=&#39;2010-03-01 00:00:00&#39; and datetimecolumn<&#39;2010-03-02 00:00:00&#39;但是,这种方法由于时间不是整数型数据,所以在比较的时候效率较低,所以如果数据量较大,可以将时间转换为整数型的UNIX时间戳,这就是方法二。

方法 2: UNIX タイムスタンプを使用します。毎回、一意の UNIX タイムスタンプに対応します。タイムスタンプは '1970-01-01 00:00:00' から 0 として始まり、増加します。 1秒ごとに1ずつ増えます。 MySql には、従来の時間と UNIX 時間の間の組み込み交換関数があります。

  • UNIX_TIMESTAMP(datetime)

  • FROM_UNIXTIME(unixtime)

たとえば、

を実行すると、コードは次のようになります:

SELECT UNIX_TIMESTAMP(&#39;2010-03-01 00:00:00&#39;)

1267372800

実行

SELECT FROM_UNIXTIME(1267372800)

Returns '2010 -03-01 00:00:00'

したがって、時間フィールドのデータを整数の UNIX 時間に置き換えることができます。このようにして、比較時間は整数比較は、インデックスを確立すると効率が大幅に向上します。クエリを実行するときは、比較する前に、開始時刻と終了時刻をそれぞれ UNIX 時間に変換する必要があります (例:

select count(*) from sometable where datetimecolumn>=UNIX_TIMESTAMP(&#39;2010-03-01 00:00:00&#39;) and datetimecolumn<UNIX_TIMESTAMP(&#39;2010-03-02 00:00:00&#39;)

呼び出し側プログラムで UNIX 時間に変換して、それを MySql に渡すこともできます)。 , この方法では、期間をすばやくクエリするのに便利ですが、表示時間を再度反転する必要があります。

#その他の関連する無料学習の推奨事項: mysql チュートリアル(ビデオ)

以上がmysqlで期間をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。