ホームページ > データベース > mysql チュートリアル > SQL データをカスタムの「月-年」形式で月と年でグループ化するにはどうすればよいですか?

SQL データをカスタムの「月-年」形式で月と年でグループ化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-29 00:30:10
オリジナル
321 人が閲覧しました

How Can I Group SQL Data by Month and Year in a Custom

カスタム形式での月と年による SQL グループ化

SQL でタイムスタンプを操作する場合、特定の基準でデータをグループ化すると便利です月や年などの間隔。ただし、DATE または TIMESTAMP データ型のデフォルト形式は、希望するプレゼンテーションと必ずしも一致するとは限りません。この点で、一般的な課題は、日付を「月-年」などのカスタム形式で表示することです。

次の SQL クエリを考えてみましょう。

SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec,
       SUM(marketingExpense) AS SumaMarketing,
       SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
ログイン後にコピー

このクエリは、データを月と年ごとに集計し、マーケティング費用と収益の合計を表示します。ただし、最初の列「Mjesec」には、現在「9」などの月のみが表示されます。 「月-年」を表示するように出力を変更するには、キャストと文字列連結の組み合わせが必要です。

1 つの方法では、月と年の値を文字列にキャストし、それらを手動で連結します。

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec,
       SUM(marketingExpense) AS SumaMarketing,
       SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))
ログイン後にコピー

これにより、希望の「月-年」形式 (例: 「9-2011」) が出力されます。あるいは、40-Love が提案しているように、先頭にゼロを付けてキャストを実行すると、次のような GROUP BY 句が生成されます。

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 
ログイン後にコピー

このバリエーションでは、先頭にゼロを追加して、月が常に 2 として表示されるようにします。 -桁の数字

以上がSQL データをカスタムの「月-年」形式で月と年でグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート