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

coldplay.xixi
リリース: 2020-10-29 16:22:15
オリジナル
6052 人が閲覧しました

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

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

Mysql クエリ期間メソッド:

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

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

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

  • UNIX_TIMESTAMP(datetime)

  • FROM_UNIXTIME(unixtime)

たとえば、

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

SELECT UNIX_TIMESTAMP('2010-03-01 00:00:00')
ログイン後にコピー

1267372800

実行

SELECT FROM_UNIXTIME(1267372800)
ログイン後にコピー

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

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

select count(*) from sometable where datetimecolumn>=UNIX_TIMESTAMP('2010-03-01 00:00:00') and datetimecolumn
        
ログイン後にコピー

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

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!