2016-11-18 5 views
0

マルチパートの質問: 1.デフォルトのタイムスタンプの形式を見つける/設定するにはどうすればよいですか? 2.私は挿入する必要のあるタイムスタンプの列を持っていますが、時間があるだけです(日付も年もありません)。どうすればいいですか??アップ表示されて何とかこの1970上記のようカザンドラのタイムスタンプの質問

CREATE TABLE testts (
      ID int PRIMARY KEY, 
      mdate timestamp,    
      ttime timestamp); 

INSERT INTO testts (ID , mdate, ttime) 
VALUES (1, '2015-10-12', '2014-10-12') ; 

INSERT INTO testts (ID , mdate, ttime) 
VALUES (2, '2015/10/15', '2013/10/12') ; //This fails 

INSERT INTO testts (ID , mdate, ttime) 
VALUES (2, '20151015', '20131012') ; //Did not put any format 

INSERT INTO testts (ID , mdate, ttime) 
VALUES (3, '2009-08-12', '1020') ; //my actual data is just time 

cqlsh:tests> select * from testts; 

id | mdate     | ttime 
----+--------------------------+-------------------------- 
    1 | 2015-10-12 07:00:00+0000 | 2014-10-12 07:00:00+0000 
    2 | 1970-01-01 05:35:51+0000 | 1970-01-01 05:35:31+0000 //1970 ?? 
    3 | 2009-08-12 07:00:00+0000 | 1970-01-01 00:00:01+0000 //1970 ?? 

(3 rows) 

?!:

は、私が試しにいくつかの基本的なテストを実行しました(これも理にかなっています)、本当に何も解決できませんでした

おかげthe official documentationからすべて、

+0

すべてのフィールドがない場合は、タイムスタンプではありません。もしそれがあなたが保存したいものでないなら 'timestamp'を使わないでください。代わりにそれぞれの時間フィールドの列を使用してください。 –

+0

> select * from testtime; id | | ttime ---- + -------------------------- + ---------------- ---- 1 | 2015-10-12 07:00:00 + 0000 | 00:00:00.000001020 2 | 2014-08-15 07:00:00 + 0000 | 00:00:00.000000930 (2行) –

+0

(上記のコメントはあらかじめ掲載されています)はい、タイムスタンプを使用しないでください(方法がない限り)。 1020,930などのように時間列型を試してみましたが、selectは** 0s **を前に取得します。つまり、何を意味するのかは日付/年のようには見えません。 id | | ttime ---- + -------------------------- + ---------------- ---- 1 | 2015-10-12 07:00:00 + 0000 | 00:00:00.000001020 2 | 2014-08-15 07:00:00 + 0000 | 00:00:00.000000930 (2 rows) ' –

答えて

0

(これは可視化の問題である場合):

あなたはcqlshrcファイルの [UI]セクションでTIME_FORMATプロパティを設定することで、形式を変更することができます。

同じリンクで、知る必要があるすべての情報を見つけることができます。具体的には:00:00:00 GMTでの1970年1月1日:タイムスタンプタイプの

値は、エポックとして知られている標準ベースの時間 からのミリ秒数を表す64ビットの符号付き整数 として符号化されます。

タイムアウトの挿入は、その日付との相対的な位置になり、そのまま表示されます。

timestamp列を使用する代わりに、タイム専用の部分を保存するために、平文int(またはbigint)を使用することができます。