TO_CHAR() の操作
PostgreSQL クエリで現在の日付を取得する場合でも、テーブル内の日付を操作する場合でも、日付を文字列に変換する方法を理解することが不可欠です。出力として日付をよりきれいな形式にしたい場合や、文字列に変換した後に日付のセクションを抽出したい場合があります。いずれにしても、TO_CHAR() は理想的な関数です。
さらに、TO_CHAR() には使用できる書式設定オプションが多数用意されています。さまざまなオプションを組み合わせて、目的の出力を得ることができます。
TO_CHAR() は次の構文を使用します。
TO_CHAR(式、形式);
式は、指定された形式を使用して変換するタイムスタンプです。
一般的に使用される TO_CHAR() 形式は次のとおりです。
1年
YYYY – 西暦を4桁で表示します。
YYY – カンマを使用して年の 4 桁を表します。
YYY – 指定した年の最後の 3 桁のみが表示されます。
YY – 指定した年の最後の 2 桁のみが表示されます。
そして - 指定された年の最後の桁のみが表示されます。
2ヶ月
月 - 月の名前には大文字が使用されます。
月 - 月の名前には小文字が使用されます。
私の - 月を大文字で省略します。
私の - 月を省略して大文字にします。
んん - 月番号のみが表示されます。
3. 日
日 - 大文字の曜日名。
日 - 小文字の曜日名。
あなた - 曜日名を省略して大文字にします。
それらの - 曜日名を省略して大文字にします。
あなた- 小文字の短縮日名。
4. 時間
HH – 時刻
HH12 – 12時間形式
HH24 – 24時間形式
私の - 分
SS – 秒
指定された形式は使用できる唯一の TO_CHAR() 形式ではありませんが、最も一般的に使用される形式です。この投稿ではその使用例を紹介します。
例 1: 日付を文字列に変換する
この例では、式としてターゲットの日付を入力し、それを変換する形式を指定します。次の出力は、「2023-11-29」をより読みやすく理解しやすい文字列に変換する方法を示しています。
例 2: 現在の日付を操作する
PostgreSQL では、CURRENT_DATE によってその特定の日の日付が得られます。
それを文字列に変換したいとします。式として CURRENT_DATE を使用し、形式を指定するだけです。現在の日付を文字列として取得できるようになりました。
ただし、目的に合わせて形式を別の形式に変更することもできます。たとえば、日付、月、年のみを表示したい場合は、コマンドを次のように調整します。
TO_CHAR() の利点は、さまざまな形式を組み合わせて、日付に使用する最終的な形式を作成できることです。次にタイムスタンプを使ってみましょう。
例 3: タイムスタンプの操作
これまでは日付のみを扱ってきました。ただし、日付に時間が含まれている場合は、理想的な形式を指定することで時間を抽出できます。
以下は、日付を省略して、提供されたタイムスタンプから 24 時間形式で時刻を取得するように指定する例です。
12 時間形式の場合は、HH24 の代わりに HH12 を使用します。次の例を見てください。
最後に、提供されたタイムスタンプから日付と時刻を抽出したい場合は、使用したい理想的な形式を追加するだけです。ここでは時刻にHH12:MI:SSを使用して指定し、区切り文字を追加します。次に、日付に「dd,Month,yyyy」を使用するように指定します。
最終的な出力は次のとおりです。
例 4: テーブルの操作
これまで説明してきたすべての形式は、PostgreSQL テーブルに適用できます。この例では、「date」列を含む「orders」という名前のテーブルがあります。そこから要素を選択し、「日付」列に TO_CHAR() を使用するには、次のようにコマンドを実行します。
任意の形式を使用できます。以下は同じコマンドですが、日付形式が異なります。
日付列から曜日と月のみを表示したい場合は、次のようにコマンドを調整します。
あなたのケースで使用したい理想的なフォーマットを自由に指定してください。
結論
TO_CHAR() は、ユーザーがタイムスタンプやその他のリテラルを文字列に変換できる便利な PostgreSQL 関数です。この投稿では、日付に TO_CHAR() を使用するさまざまな方法を示します。内容をすぐに理解できるように、さまざまな例を提供しました。 TO_CHAR() でもう困らないことを願っています。