2017-12-15 6 views
0

タイムスタンプのフォーマットを秒単位で行うことができます。netezza - タイムスタンプを1/100s/1/10秒にフォーマットする

to_char('2017-02-20 08:22:44.166'::timestamp, 'YYYY-MM-DD HH24:MI:SS') --> 2017-02-20 08:22:44

私は秒の100Sおよび10Sに上記タイムスタンプをフォーマットする必要があります。

- (第2の1/100Sにフォーマット)>2017-02-20 08:22:44.17

- >2017-02-20 08:22:44.2(第2の1/10にフォーマット)

Iは以下のように行うのPostgresの方法を試みたが、これは、私はこれはかなりないですが、それは、PostgreSQLで動作し、私はそれがNetezzaの上で動作すると信じて

select '2017-02-20 08:22:44.166'::timestamp(2), '2017-02-20 08:22:44.166'::timestamp(1); 

ERROR [42000] ERROR: 'select '2017-02-20 08:22:44.166'::timestamp(2), '2017-02-20 08:22:44.166'::timestamp(1) LIMIT 1000' 
error            ^found "(" (at char 44) expecting a keyword 

答えて

1

で働いているNetezzaのプラットフォームでエラーが発生します。 (残念ながら、私はNetezzaボックスにアクセスできなくなりましたので、ドキュメントだけに頼っています):

select 
    '2017-02-20 08:22:44.166'::timestamp, 
    to_char('2017-02-20 08:22:44.166'::timestamp, 'YYYY-MM-DD HH24:MI:SS.') || 
     round(to_char('2017-02-20 08:22:44.166'::timestamp, 'MS')::float/10) as hundredths, 
    to_char('2017-02-20 08:22:44.166'::timestamp, 'YYYY-MM-DD HH24:MI:SS.') || 
     round(to_char('2017-02-20 08:22:44.166'::timestamp, 'MS')::float/100) as tenths; 

     timestamp  |  hundredths  |  tenths   
-------------------------+------------------------+----------------------- 
2017-02-20 08:22:44.166 | 2017-02-20 08:22:44.17 | 2017-02-20 08:22:44.2 
(1 row) 
+0

これは動作します!! - クエリを実行して結果を得るために使用したUIインターフェース/アプリケーションは何かを知りたいだけですか? – user3206440

+0

Netezzaでもうまくいきました。私が使用するUIは、ほとんどの場合、コマンドライン(PostgreSQLの場合はpsql、Netezzaの場合はnzsql、Oracleの場合はsqlplusなど)です。私は、コマンドラインが私にデータベースとのより密接なインターフェースを与え、繰り返し可能なコードを生成するのに役立つことがわかります。私は前回試したボックスを思い出すのではなく、各スクリプトをファイルに保存して、何度も何度も実行することができます。ハント・アンド・トーマスのPragmatic Programmer、第15章「シェル・ゲーム」はとてもうまく説明しています。あなたは私のウェブサイトhttp://thedatastudio.netを見るかもしれません。 –

関連する問題