カスタム形式での月と年による 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 サイトの他の関連記事を参照してください。