2017-06-09 21 views
0

私はPostgreSQLで新機能です。列の分の値を時と分の形式に変換する必要がありますが、さまざまなソースで検索しましたが、 。平均で 私は次のように)(to_char関数を使用しようとしながら、:postgresqlで時間を分単位に変換する方法

UPDATE tablename SET col2 = TO_CHAR(((col1*60 ||`second`))::interval, ‘HH24:MI:SS’) where id = 145; 

が、私は次のエラーを取得する...

column "late_by" is of type timestamp with time zone but expression is of type text 
LINE 2: UPDATE attendance SET late_by = TO_CHAR(((lateby*60 || 'seco... 
             ^
HINT: You will need to rewrite or cast the expression. 
+0

フィールド 'late_by'に対しては区間データ型が適しています –

+0

**あなたの質問と 'create table'ステートメント、あなたが使っている**実際の**ステートメントいくつかのサンプルデータとそのデータに基づいて予想される出力が無効であることを示しています)。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、** **スクリーンショットはありません**(http://meta.stackoverflow.com/questions/285551/why-may -i-not-upload-images-of-code-on-so-asking-a-question/285557#285557)。 ** [編集] **あなたの質問 - コメントを投稿するコードや追加情報はありません**。 –

+0

@ VaoTsun私はあなたの言ったことを得ていませんでした。詳細を教えてください。 – mohan

答えて

0

あなたのコラムlate_byはまだ、タイムスタンプでありますタイムスタンプではなく間隔で更新したいとします。誰かが遅れているどのくらいの時間保存したい場合は、より良いinterval、例えば使用:あなたはpostgresの自身によってなさ分に「変換」を見ることができるよう

t=# create table w3 (t interval); 
CREATE TABLE 
t=# insert into w3 select (185||' seconds')::interval; 
INSERT 0 1 
t=# select * from w3; 
    t 
---------- 
00:03:05 
(1 row) 

0

かは不明である何種類各列のあなたの声明はです。

しかし、それは場合に役立ちます「COL1」が整数である場合、あなたは、間隔

select interval '60 seconds' * 15; 

またはあなたのケースでは上の数学を行うことができます。インターバル'60秒* COL1。

関連する問題