あなたのクエリのために働く:
select TRUNC(to_timestamp('2016-08-01T09:16:47.000','YYYY-MM-DD"T"HH24:MI:SS.ff3'))
from dual;
はdate
値を返します。どのように表示するかは、それを文字列に変換するために使用するマスクの形式の問題です。フォーマットマスクなしでは、デフォルトのNLS設定が使用される。私が手:私のNLS_DATE_FORMAT設定becaiuse
SQL> select TRUNC(to_timestamp('2016-08-01T09:16:47.000','YYYY-MM-DD"T"HH24:MI:SS.ff3'))
from dual;
TRUNC(TO_
---------
01-AUG-16
は現在、 'DD-MON-RR' です。
1 select TO_CHAR(TRUNC(to_timestamp('2016-08-01T09:16:47.000','YYYY-MM-DD"T"HH24:MI:SS.ff3')
2 'YYYY-MM-DD HH:MI:SS AM')
3* from dual;
TO_CHAR(TRUNC(TO_TIMES
----------------------
2016-08-01 12:00:00 AM
それは完全に時間を取り外すようtrunc
を使用することは間違っていたことを示しています。明示的な書式マスクを使用します。だから、:これはまた、PMの時間のために働く
1 select TO_CHAR(to_timestamp('2016-08-01T09:16:47.000','YYYY-MM-DD"T"HH24:MI:SS.ff3'),
2 'YYYY-MM-DD HH:MI:SS AM')
3* from dual;
TO_CHAR(TO_TIMESTAMP('
----------------------
2016-08-01 09:16:47 AM
注:
1 select TO_CHAR(to_timestamp('2016-08-01T13:16:47.000','YYYY-MM-DD"T"HH24:MI:SS.ff3'),
2 'YYYY-MM-DD HH:MI:SS AM')
3* from dual;
TO_CHAR(TO_TIMESTAMP('
----------------------
2016-08-01 01:16:47 PM
あなたの実際のコードを表示してください - 構文的に有効ではありませんのようにあなたが完全に失敗していまし掲載するもの。 –
デュアルからのTRUNC(to_timestamp( '2016-08-01T09:16:47.000'、 'YYYY-MM-DD' T "HH24:MI:SS.ff3 '))を選択します。 –
質問タグは、最良の答えを与えることができるようにSQLでなければなりません。あまりタグの付いていない質問にはうまく対応していません。 – XING