2015-03-26 18 views
9

In SQL, sono in grado di fare:Get data corrente nel cassandra CQL selezionare

select getdate(), getdate() - 7 

che restituisce la data corrente, così come la data corrente - 7 giorni. Voglio ottenere lo stesso risultato in Cassandra CQL. Ho provato:

select dateof(now()) 

Ma questo non funziona. Funziona solo su insert e non su select. Come posso ottenere lo stesso? Qualsiasi aiuto sarebbe apprezzato.

risposta

18
select dateof(now()) 

Di per sé, si è corretto, che non funziona. Ma se si dispone di una tabella che si sa ha una sola riga (come system.local):

[email protected]:stackoverflow> SELECT dateof(now()) FROM system.local ; 

dateof(now()) 
-------------------------- 
2015-03-26 03:18:39-0500 

(1 rows) 

Purtroppo, Cassandra CQL non lo fa (? Ancora CASSANDRA-5505) includono il supporto per le operazioni aritmetiche, per non data solo l'aritmetica. Quindi sottrarre 7 giorni da quel valore è qualcosa che dovresti fare a livello di applicazione.

+1

Grazie mille, ha funzionato. Ho fatto la cosa di sottrazione sul mio livello di applicazione. – Hitesh

+1

@Aaron Huh. Apparentemente c'è una diretta [ripoff cinese] (http://www.developersite.org/101-191317-cassandra) di StackOverflow (presumibilmente al solo scopo di pubblicare annunci pubblicitari). Quella o altre due persone hanno avuto uno scambio Q/A perfettamente identico. Le cose che impari. – arbitrarystringofletters

+0

@Aaron In un'altra nota, sono passati due anni. Sai se questa funzione è stata aggiunta a Cassandra? – arbitrarystringofletters