我创建了表列数据类型作为时间戳,而存储时它存储了默认的时间戳格式yyyy - mm-dd HH:mm:ssZ
但是当尝试根据时间戳选择时它不会返回记录。
CREATE TABLE TEST
(
TS timestamp,
VALUE text,
EMAILID text,
PRIMARY KEY (TS,VALUE)
);
INSERT INTO TEST(TS,VALUE,EMAILID) VALUES('1418026180922','sometext','email@');
SELECT * FROM TEST WHERE TS='2014-12-08 00:38:10-0800' ALLOW FILTERING;
此查询返回0行?为什么它会像我那样做错了?
适用于以下查询:
SELECT * FROM TEST WHERE TS='1418026180922' ALLOW FILTERING;
答案 0 :(得分:4)
您的查询
SELECT * FROM TEST WHERE TS='2014-12-08 00:38:10-0800' ALLOW FILTERING;
丢弃(或者忽略)用于插入行的时间戳的毫秒部分
1418026180922
// ^^^^
所以日期不一样。
如果您已插入
INSERT INTO TEST(TS,VALUE,EMAILID) VALUES('14180261800000','sometext','email@');
您可以使用
检索它select * from test where ts='2014-12-08 00:09:40-0800'; // note that I've fixed it from your '2014-12-08 00:38:10-0800'