日時データ型を使用する場合、日付や時刻などの特定のコンポーネントを抽出することが必要になることがよくあります。この記事では、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 サイトの他の関連記事を参照してください。