与えられた 2 桁の年コード (YY) が 19XX か 20XX かを知るにはどうすればよいでしょうか? たとえば、 と入力する07-apr-10
と10
、年1910
または2010
?
3 に答える
1
一般的に言えば、RR
datetime 形式要素を使用して、2 桁の年を完全な年に変換する必要があります。
指定された 2 桁の年が 00 から 49 の場合、
- 現在の年の下 2 桁が 00 から 49 の場合、返される年の上 2 桁は現在の年と同じになります。
- 現在の年の下 2 桁が 50 から 99 の場合、返される年の上 2 桁は、現在の年の上 2 桁よりも 1 大きくなります。
指定された 2 桁の年が 50 から 99 の場合、
- 現在の年の下 2 桁が 00 から 49 の場合、返される年の上 2 桁は、現在の年の上 2 桁よりも 1 少なくなります。
- 現在の年の下 2 桁が 50 ~ 99 の場合、返される年の上 2 桁は現在の年と同じになります。
YY
不足している数字は常に現在の年の数字で埋められるため、必要ないと思います。例えば:
SELECT TO_CHAR(TO_DATE('98', 'YY'), 'YYYY') FROM dual; -- returns 2098, not 1998
SELECT TO_CHAR(TO_DATE('9', 'Y'), 'YYYY') FROM dual; -- returns 2019
SELECT TO_CHAR(TO_DATE('98', 'RR'), 'YYYY') FROM dual; -- returns 1998 (until we get to 2050)
于 2015-09-17T10:53:12.233 に答える
0
これを確認するには:
まず、YY 年形式の CHAR を日付に変換する必要があります。
TO_DATE('20-01-15','DD-MM-YY');
その後すぐに CHAR に変換し、以下のような出力を確認します。
SELECT TO_CHAR(TO_DATE('20-01-15','DD-MM-YY'),'YYYY') FROM DUAL;
于 2015-09-17T10:43:00.727 に答える
0
編集: 申し訳ありませんが、私のクライアント設定には YY しかありませんでした。YYYY を追加した後、結果を下回っています。したがって、デフォルトでは YY は 20YY かかるように見えます
select to_date('7/10/15','DD/MM/YY') from dual;
07-OCT-2015
select to_date('7/10/15','DD/MM/YYYY') from dual;
07-OCT-0015
于 2015-09-17T10:37:47.130 に答える