ホームページ >データベース >mysql チュートリアル >SQL で月の最初の日を効率的に選択するにはどうすればよいですか?
月の最初の日を見つけるための合理化された SQL アプローチ
SQL で日付を操作するには、多くの場合、特定の月の最初の日を抽出する必要があります。いくつかの方法が存在しますが、この改良された技術は優雅さと効率性の両方を提供します。
最適化された SQL クエリ
次のクエリは、DATEADD
関数と DATEDIFF
関数を利用して月の最初の日を特定します。
<code class="language-sql">SELECT DATEADD(month, DATEDIFF(month, 0, @mydate), 0) AS FirstDayOfMonth</code>
詳しい説明
DATEDIFF(month, 0, @mydate)
: これは、エポック (通常は 1900 年 1 月 1 日) と入力日 (@mydate
) の間の月数を計算します。 これにより、事実上、エポックからの月のオフセットが得られます。DATEADD(month, <month offset="">, 0)
: これにより、計算された月のオフセットがエポック (1900 年 1 月 1 日) に追加されます。結果は、@mydate
に対応する月の最初の日です。主な利点
DATEADD
は一般に高度に最適化されており、より複雑なカスタム ソリューションと比較して実行が高速になります。実践例
@mydate
が '2023-04-15' の場合、クエリは '2023-04-01' を返し、2023 年 4 月の初日を正しく識別します。
以上がSQL で月の最初の日を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。