ホームページ >データベース >mysql チュートリアル >MySQL の DateTime 列から日付を効率的に抽出するにはどうすればよいですか?

MySQL の DateTime 列から日付を効率的に抽出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-02 17:33:10846ブラウズ

How to Efficiently Extract Dates from DateTime Columns in MySQL?

日時列からの日付の効率的な選択

日時データ型を使用する場合、日付や時刻などの特定のコンポーネントを抽出することが必要になることがよくあります。この記事では、MySQL の datetime 列から日付を取得するという課題について説明します。

問題

一般的なクエリは、次の例のように、特定の日付に基づいて行をフィルタリングすることです。

SELECT * FROM data
WHERE datetime = '2009-10-20'
ORDER BY datetime DESC;

ただし、BETWEEN 句を使用して日付範囲「2009-10-20」を定義するという提供されたソリューション00:00:00' から '2009-10-20 23:59:59' は空の結果セットを返します。

解決策

日付を効果的に抽出するために、MySQL は DATE() を提供します。日時値の日付コンポーネントを返す関数。 WHERE 句で DATE() を使用すると、日付リテラルとの直接比較が可能になります:

SELECT * FROM data
WHERE DATE(datetime) = '2009-10-20'
ORDER BY datetime DESC;

パフォーマンスを改善できる代替アプローチは、ワイルドカード サフィックスを伴う LIKE 演算子を使用することです:

SELECT * FROM data
WHERE datetime LIKE '2009-10-20%'

ただし、他の Stack Exchange スレッドで説明されているように、LIKE 比較はパフォーマンスに影響を与える可能性があることに注意することが重要です。

以上がMySQL の DateTime 列から日付を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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