2013-10-27 26 views
45

CQL masamıza komut satırından girmeye çalışıyorum. Her şeyi ekleyebiliyorum. Ama bir zaman damgası sütunun olup olmadığını merak ediyorum, o zaman komut satırından zaman damgası sütununa nasıl ekleyebilirim? Benim CQL tabloya ekleme am ne zaman Temelde, şimdiki zaman damgasını eklemek istediğiniz - Komut Satırı kullanırken CQL ile ilgili zaman damgası nasıl edinilir?

CREATE TABLE TEST (ID TEXT, NAME TEXT, VALUE TEXT, LAST_MODIFIED_DATE TIMESTAMP, PRIMARY KEY (ID)); 

INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) VALUES ('1', 'elephant', 'SOME_VALUE', 1382655211694); 

herhangi bir yolu var mı - Şu

, ben CQL tablonun altında benim sokmaya am her zaman damgası hardcoding am CQL'de önceden tanımlanmış bazı fonksiyonları kullanarak mevcut zaman damgasını elde edin, böylece yukarıdaki tabloya eklerken, o zamanki zaman damgasını almak ve yukarıdaki tabloya eklemek için bu yöntemi kullanabilirim?

cevap

82

Sen

INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) 
        VALUES ('2', 'elephant', 'SOME_VALUE', dateof(now())); 

now fonksiyon parametre almayan ve zaman nerede (yeni bir benzersiz timeuuid üretir now() ve dateof() (veya Cassandra, toTimestamp() sonraki sürümlerinde) örneğin, timeuuid işlevleri kullanabilirsiniz kullanarak ifade yürütülür). dateOf işlevi, bir timeuuid argümanı alır ve gömülü zaman damgasını çıkarır. (timeuuid functions adresindeki CQL belgelerinden alınmıştır).

Cassandra> =

dateof() 2.2.0-RC2 Cassandra 2.2.0-RC2 kaldırıldı. toTimestamp(now()) kullanabilirsiniz cassandra yeni sürümünde

INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) 
        VALUES ('2', 'elephant', 'SOME_VALUE', toTimestamp(now())); 
+0

Teşekkür Düzgün çalışır .. Lorcan .. –

+0

@lorcan: Ben de [burada] (Benim söz konusu timeuuid fonksiyonlarını kullanıyor olabilir http://stackoverflow.com/questions/19602979/ Nasıl-nasıl-sadece-bilgi-bu---değiştirilir-cassandra değişti-nasıl-bilgi-e-posta ile soru bana yardım edebilecek inanıyorum gibi soru bana yardımcı olabilir .. – AKIWEB

+0

nasıl değiştirilir varsayılan zaman damgası ... timestamp her zaman cassandra içinde timezone ile birlikte geliyor .. ama zaman damgası içinde zaman dilimi istemiyorum .. varsayılan biçimi değiştirmek istiyorum ... yine de değiştirmek için var mı? – User12345

12

ve bu fonksiyon dateof onaylanmıyor not: sonraki sürümleri için aşağıdaki gibi, toTimestamp() ile kullanımını değiştirmelisiniz.

örn

insert into dummy(id, name, size, create_date) values (1, 'Eric', 12, toTimestamp(now())); 
+0

"Cassandra'nın yeni (er) sürümlerinde" - hangi sürüm bu? 3.0 ya da 2.x'de zaten destekleniyor muydu? –

+1

@AlexisWilke 'toTimestamp()' 3.0'da kesinlikle destekleniyor, ancak 2.2'den beri görünüyor, kontrol edebilirsiniz: https://www.instaclustr.com/blog/2015/12/18/5-things-you- cassandra-2-2/ –

+0

toTimestamp() işlevi cassandra sürüm 2.1.8 atleast'de mevcut değildir. Sadece doğruladım. –