私は41293
オラクルのように日付を持っています。どうすればDD/MON/YYYY
フォーマットで表示できますか?
それをコピーしてExcelに貼り付けて日付形式に変更すると、01/19/13
助けてくださいと表示されます。
Oracleフォーラムからの引用:
format は、スプレッドシートの日付型にどのような形式があるかをオラクルに伝えるためのものであるため、これを行うにはツールが必要です。Excel で日付の書式設定を選択していない場合でも、プレビューアでは日付として表示されます。これからの形式をガイドとして使用して、データ型パネルに入ります。
したがって、プレビューアで 2006 年 1 月 19 日のような日付がある場合、その列を挿入することを選択した場合のデータ型パネルの形式は DD-MON-YYYY になります。
オプション1:
以下の関数を使用してみてください
FUNCTION FROMEXCELDATETIME ( ACELLVALUE IN VARCHAR2 )
RETURN TIMESTAMP
IS
EXCEL_BASE_DATE_TIME CONSTANT TIMESTAMP
:= TO_TIMESTAMP ( '12/31/1899',
'mm/dd/yyyy' ) ;
VAL CONSTANT NUMBER
:= TO_NUMBER ( NULLIF ( TRIM ( ACELLVALUE ),
'0' ) ) ;
BEGIN
RETURN EXCEL_BASE_DATE_TIME
+ NUMTODSINTERVAL ( VAL
- CASE
WHEN VAL >= 60
THEN
1
ELSE
0
END,
'DAY' );
END;
FUNCTION TOEXCELDATETIME ( ATIMESTAMP IN TIMESTAMP )
RETURN VARCHAR2
IS
EXCEL_BASE_DATE_TIME CONSTANT TIMESTAMP
:= TO_TIMESTAMP ( '12/31/1899',
'mm/dd/yyyy' ) ;
DIF CONSTANT INTERVAL DAY ( 9 ) TO SECOND ( 9 )
:= ATIMESTAMP
- EXCEL_BASE_DATE_TIME ;
DAYS CONSTANT INTEGER := EXTRACT ( DAY FROM DIF );
BEGIN
RETURN CASE
WHEN DIF IS NULL
THEN
''
ELSE
TO_CHAR ( DAYS
+ CASE
WHEN DAYS >= 60
THEN
1
ELSE
0
END
+ ROUND ( ( EXTRACT ( HOUR FROM DIF )
+ ( EXTRACT ( MINUTE FROM DIF )
+ EXTRACT ( SECOND FROM DIF )
/ 60 )
/ 60 )
/ 24,
4 ) )
END;
END;
オプション 2:
Excel 関数は=TEXT(B2,"MM/DD/YY")
、B2 に保存されている Excel の日付値を変換するためのものです。次に、Oracleでテスト文字を使用してみてください
1900 年 1 月 1 日を開始日と考えると、
SELECT
TO_CHAR ( TO_DATE ( '1900-01-01',
'YYYY-MM-DD' )
+ 41293,
'DD/MON/YYYY' )
FROM
DUAL