2012-02-22 11 views
0

localtimestampをdualから選択します。localtimestampからミリ秒の部分を避ける方法は?

上記のクエリは、22-FEB-12 04.27.02.225354000 PMの形式で結果を示しています。

どのように22 - 2月-12 04.27.02 PMに

+0

これは、実際のデータを文字列で表したものです。とにかくユーザーに表示するたびに、フォーマットを適用する可能性が高くなります。それでは、なぜデータベースレベルに気をつけますか? – Joey

答えて

2

を取得するクエリを記述するか:

select current_date from dual; 

または:

select to_char(localtimestamp,'dd-MON-yyyy hh.mi.ss AM') from dual; 

timestamp形式を返すでもないけど。

+0

ありがとう...第2の作品.. – user1148952

0

:TO_CHAR関数の詳細だけでなく、サポートされる形式のドキュメントをチェック

SELECT TO_CHAR(dateColumn, 'YYYY-MM-DD HH12.MI.SS PM') 

をTIMESTAMPにはいくつかのオプションがあります。次の実行してみてください:CAST_TIMESTAMP0、CURRENT_DATE、及びDATE_CAST_TO_TIMESTAMP値が切り捨てではなく、最も近い秒に丸められていることを

SELECT LOCALTIMESTAMP, 
     CAST(LOCALTIMESTAMP AS TIMESTAMP(0)) AS CAST_TIMESTAMP0, 
     CURRENT_DATE, 
     CAST(CURRENT_DATE AS TIMESTAMP) AS DATE_CAST_TO_TIMESTAMP, 
     TO_TIMESTAMP(TO_CHAR(LOCALTIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') AS CHAR_TIMESTAMP, 
     CAST(TO_TIMESTAMP(TO_CHAR(LOCALTIMESTAMP, 'DD-MON-YYYY HH24:MI:SS'), 'DD-MON-YYYY HH24:MI:SS') AS TIMESTAMP(0)) AS TRUCATED_TIMESTAMP 
    FROM DUAL 

注 - 再実行クエリLOCALTIMESTAMPの小数部分を参照するために0.5と1.0の間になるまでこの。丸められた値があなたの使用に受け入れられるなら、あなたは行くのが良いです。そうでない場合は、最後の2つのバージョンを使用して、タイムスタンプを文字列に変換してから戻す必要があります。

上記のCHAR_TIMESTAMP値にはデフォルトの小数点以下桁数がありますが、すべてゼロであることにも注意してください。これを望まない場合は、TRUNCATED_TIMESTAMP値を使用する必要があります。

共有して楽しんでください。