問題ID:19867について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2020-8-25 10:58
EWorker  新米   投稿数: 5
この問題では、以下の書式で表示できるSQL文を選択するもんだいになりますが、解答では"AM"と記載されている選択肢が選ばれています。

2012年12月12日(水) 午後 10時28分35秒

"AM"は午前を表す日付書式だったと認識していますが、解答では午後になっています。どこで認識違いを起こしているのかわからないのでご指摘いただければと思います。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-8-25 12:37 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
"AM"は午前を表す日付書式だったと認識していますが、解答では午後になっています。どこで認識違いを起こしているのかわからないのでご指摘いただければと思います。
認識違いなのかどうかと思ってやってみたら、お昼12時はAM/PMどちらを指定しても同じ出力でした。
# sqlplus pingt/oracle@XE

SQL*Plus: Release 11.2.0.2.0 Production on 火 8月 25 12:16:02 2020

Copyright (c) 1982, 2011, Oracle.  All rights reserved.



Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> SELECT TO_CHAR(SYSDATE, 'RRRR"年"MM"月"DD"日 ("DY")" AM HH"時"MI"分"SS"秒"') FROM dual;

TO_CHAR(SYSDATE,'RRRR"年"MM"月"DD"日("DY")"AMHH
-----------------------------------------------
2020年08月25日 (火) 午後 12時16分04秒

SQL> SELECT TO_CHAR(SYSDATE, 'RRRR"年"MM"月"DD"日 ("DY")" PM HH"時"MI"分"SS"秒"') FROM dual;

TO_CHAR(SYSDATE,'RRRR"年"MM"月"DD"日("DY")"PMHH
-----------------------------------------------
2020年08月25日 (火) 午後 12時16分32秒

SQL> !date
2020年  8月 25日 火曜日 12:16:41 JST
もしかしてAM/PMはどっちも同じ効力?と思って試してみたのですが、どうやらそうっぽいです。
■日付を「2020年9月1日 00時00分00秒」として実行
SQL> select to_char(to_date('20-09-01 00:00:00', 'RR-MM-DD HH24:MI:SS'), 'PM HH"時"MI"分"SS"秒"') from dual;

TO_CHAR(TO_DATE('20-09
----------------------
午前 12時00分00秒 ←PM指定なのに午前…?

SQL> select to_char(to_date('20-09-01 00:00:00', 'RR-MM-DD HH24:MI:SS'), 'AM HH"時"MI"分"SS"秒"') from dual;

TO_CHAR(TO_DATE('20-09
----------------------
午前 12時00分00秒 ←AM指定だけど、0時0分は午前0時じゃないの…?

■日付を「2020年9月1日 13時00分00秒」として実行
SQL> select to_char(to_date('20-09-01 13:00:00', 'RR-MM-DD HH24:MI:SS'), 'PM HH"時"MI"分"SS"秒"') from dual;

TO_CHAR(TO_DATE('20-09
----------------------
午後 01時00分00秒 ←PMを指定したので午後、これはわかる

SQL> select to_char(to_date('20-09-01 13:00:00', 'RR-MM-DD HH24:MI:SS'), 'AM HH"時"MI"分"SS"秒"') from dual;

TO_CHAR(TO_DATE('20-09
----------------------
午後 01時00分00秒 ←AMを指定したので午前13時…とはならないみたい

英語版のドキュメントで見ても、AMもPMも単に「Meridian Indicator」としか書いていないので、どちらも同じものとして理解して良さそうです。
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/Format-Models.html#GUID-EAB212CF-C525-4ED8-9D3F-C76D08EEBC7A

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.