2017-02-01 3 views
1

У меня есть таблица, созданная с помощью следующего сценария:Cassandra разборе дата

CREATE TABLE "TestTable2" (
    id uuid, 
    timestamp timestamp, 
    msg text, 
    priority int, 
    source text, 
    PRIMARY KEY (id, timestamp) 
); 

Теперь я вставив одну строку:

INSERT INTO "TestTable2" (id, timestamp, msg, source) values (uuid(), '2002-03-31 02:36:10', 'asdas dasdasd', 'system1'); 

и я получаю сообщение об ошибке:

Unable to execute CQL script on 'UdcCluster':Unable to coerce '2002-03-31 02:36:10' to a formatted date (long)

Если я изменил день месяца на 30 или час до 22, оператор успешно выполнен. Не могли бы вы объяснить мне, что случилось с датой?

PS. Такая же ошибка повторяется для '1998-03-29 02:12:13', '1987-03-29 02:55:21' и '1984-03-25 02:45:25'. Во всех случаях это 2 часа ночи в конце марта ...

ответ

0

Вы пытаетесь получить определенное время по времени на экземпляр DateTime и хотите, чтобы это было устойчиво против летнего сбережения.

Указать часовой пояс в шаблоне: гггг-мм-дд чч: мм: SSZ

where Z is the RFC-822 4-digit time zone, expressing the time zone's difference from UTC. For example, for the date and time of Jan 2, 2003, at 04:05:00 AM, GMT:

If no time zone is specified, the time zone of the Cassandra coordinator node handing the write request is used. For accuracy, DataStax recommends specifying the time zone rather than relying on the time zone configured on the Cassandra nodes.

https://docs.datastax.com/en/cql/3.1/cql/cql_reference/timestamp_type_r.html