web-dev-qa-db-ja.com

24時間を12時間とAM / PM表示に変換するOracle SQL

演習として以下を行う必要があり、解決策を見つけるのに苦労しています。

Invoicesテーブルからこれらの列を返すSELECTステートメントを記述します。

Invoice_date列

TO_CHAR関数を使用して、24時間制の4桁の年を含む完全な日付と時刻を含むinvoice_date列を返します

TO_CHAR関数を使用して、am/pmインジケータ付きの12時間時計の4桁の年を含む完全な日付と時刻を含むinvoice_date列を返します。

CAST関数を使用して、invoice_date列をVARCHAR2(10)として返します。

私が得ることができるすべては:

    select invoice_date, to_char(invoice_date, 'DD-MM-YYYY HH:MM:SS') "Date 24Hr"
    from invoices

最初の2列が取得されますが、3列目を選択する方法がわかりません。どんな助けも素晴らしいでしょう、ありがとう。 (はい、これは私の学校の教科書からです)

11
Galen_GG

24時間の場合、HHの代わりにHH24を使用する必要があります。

12時間の場合、AM/PMインジケーターはA.M.(結果にピリオドが必要な場合)またはAM(必要ない場合)として書き込まれます。例えば:

SELECT invoice_date,
       TO_CHAR(invoice_date, 'DD-MM-YYYY HH24:MI:SS') "Date 24Hr",
       TO_CHAR(invoice_date, 'DD-MM-YYYY HH:MI:SS AM') "Date 12Hr"
  FROM invoices
;

日付のTO_CHARで使用できる形式モデルの詳細については、 http://docs.Oracle.com/cd/E16655_01/server.121/e17750/ch4datetime.htm#NLSPG004を参照してください。

31
ruakh