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