【发布时间】:2017-04-02 19:01:02
【问题描述】:
多部分问题: 1. 如何查找/设置默认时间戳格式? 2. 我有一个需要插入的时间戳列 - 但我只有时间(没有日期或年份) - 我该怎么做? (这是否有意义)
我进行了一些基本测试进行实验,但无法真正解决任何问题:
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)
如上所示,这个 1970 出现了?!
谢谢大家,
【问题讨论】:
-
如果没有所有字段,则不是时间戳。如果这不是您想要存储的内容,请不要使用
timestamp。改为为您拥有的每个时间字段使用列。 -
> select * from testtime;编号 |日期 | 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 行)
-
(上述评论已预先发布)是的,不使用时间戳是有意义的(除非有办法)。所以尝试使用时间列类型并输入时间,如 1020、930 等,但选择在前面得到 0s - 它们是什么意思 - 看起来不像日期/年份
> select * from testtime; id | mdate | 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)跨度>
标签: java cassandra timestamp cqlsh