Cassandra 指定cqlsh输出时区

Cassandra 指定cqlsh输出时区,cassandra,timestamp,cqlsh,Cassandra,Timestamp,Cqlsh,我在cassandra中有一个数据类型为timestamp的表。我正在使用cqlsh从数据库中获取数据,并希望更改时间戳列输出的输出格式。我四处研究,发现我可以通过更改以下文件来更改时间戳输出格式: ~/.cassandra/cqlshrc 但我了解到,我能做的唯一改变是时间元素,我不能让输出在不同的时区(比如UTC)显示我的时间戳。它总是在我的本地时区显示时间戳 我想知道是否有一种方法可以让cqlsh在我想要的时区显示时间戳,或者至少在UTC时区显示时间戳 感谢您的帮助或指点 我正在使用

我在cassandra中有一个数据类型为timestamp的表。我正在使用cqlsh从数据库中获取数据,并希望更改时间戳列输出的输出格式。我四处研究,发现我可以通过更改以下文件来更改时间戳输出格式:

  • ~/.cassandra/cqlshrc
但我了解到,我能做的唯一改变是时间元素,我不能让输出在不同的时区(比如UTC)显示我的时间戳。它总是在我的本地时区显示时间戳

我想知道是否有一种方法可以让cqlsh在我想要的时区显示时间戳,或者至少在UTC时区显示时间戳
感谢您的帮助或指点

我正在使用以下版本:
cqlsh 4.1.1 |卡桑德拉2.0.6 | CQL规范3.1.1


感谢

cqlshrc timeout选项使用Python strftime语法根据配置数据库对象的输出格式。我尚未验证这些strftime指令是否有效,但如果您愿意尝试使用strftime()指令%z(UTC偏移量的形式为+HHMM或-HHMM和%z(时区名称)。请参阅。

您可以更改环境变量以获得show timezone:

TZ=America/Los_Angeles cqlsh -k mpj `hostname` -e 'select time from userbehavior limit 3'

 time
--------------------------
 2015-02-15 21:17:03-0800
 2015-02-15 18:16:21-0800
 2015-02-15 00:04:52-0800

(3 rows)
以及:


谢谢你的提问。这里有另一种方法,即在使用“datetime.timedelta()”获取数据后执行一些日期操作。你可以从UTC计算偏移时间,然后进行日期调整。仅供参考

>>> import datetime 
>>> offset = -10 # in hours
>>> original = '08/19/2015 10:59' 
>>> adjusted = datetime.datetime.strptime(original, '%m/%d/%Y %H:%M') + datetime.timedelta(hours=offset) 
>>> print adjusted.strftime('%m/%d/%Y %H:%M') 
    08/19/2015 00:59

您可以通过编辑~/.cassandra/cqlshrc来更改本地cqlsh的默认时区

例:

[用户界面]
TZ=IST

感谢您的回复。这两个选项的工作方式相同,只显示时区。我想要的是能够帮助我在不同时区(或至少UTC)而不是本地时区输出日期的东西。这真是一个完成任务的巧妙技巧。感谢您的输入。似乎对我不起作用。我使用了[ui]TZ=IST。但它显示的时间加上了+0000。怎么了?
>>> import datetime 
>>> offset = -10 # in hours
>>> original = '08/19/2015 10:59' 
>>> adjusted = datetime.datetime.strptime(original, '%m/%d/%Y %H:%M') + datetime.timedelta(hours=offset) 
>>> print adjusted.strftime('%m/%d/%Y %H:%M') 
    08/19/2015 00:59