Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Cassandra中存储时间戳的时区信息_Cassandra_Timestamp_Cql - Fatal编程技术网

在Cassandra中存储时间戳的时区信息

在Cassandra中存储时间戳的时区信息,cassandra,timestamp,cql,Cassandra,Timestamp,Cql,我知道Cassandra将时间戳存储为自epoch以来的秒(或微秒)。因此,如果我关心特定事件发生的时区,我是否需要将其存储在单独的列中?对于如何存储,有什么最佳实践或建议吗?GMT的整数偏移量?我们每天在卡桑德拉集群中存储数百万个时间戳及其时区 我们建议将时间戳存储为两个值: 将时间戳本身存储为时间戳类型或bigint,并始终将其与UTC对齐(我们使用.NET datetimes,它从零年开始,而不是UNIX纪元,因此我们必须使用bigint。) 将UTC偏移量存储为bigint(以微秒为单位

我知道Cassandra将时间戳存储为自epoch以来的秒(或微秒)。因此,如果我关心特定事件发生的时区,我是否需要将其存储在单独的列中?对于如何存储,有什么最佳实践或建议吗?GMT的整数偏移量?

我们每天在卡桑德拉集群中存储数百万个时间戳及其时区

我们建议将时间戳存储为两个值:

  • 将时间戳本身存储为时间戳类型或bigint,并始终将其与UTC对齐(我们使用.NET datetimes,它从零年开始,而不是UNIX纪元,因此我们必须使用bigint。)
  • 将UTC偏移量存储为bigint(以微秒为单位)

  • 这样,默认情况下,我们所有的时间戳都使用相同的时区。但是,每当我们需要在本地时间执行某些操作时,我们只需获取UTC偏移量列并从时间戳中减去它即可获得本地时间。

    您是否需要在任意时区(即不在您保存的偏移量中的时区)中操作时间戳?此方法是否有帮助?@CrescentFresh是-如果您知道日期时间始终存储在UTC中,并且需要在其他时区中操作,则始终可以通过对存储的日期时间应用UTC偏移量来计算第三个时区(不是UTC,不是存储的时区)中的日期时间。存储UTC偏移量是否有误?为什么不存储时区信息以便计算UTC偏移量呢。这样,如果UTC偏移量发生变化,您的值将进行调整。@JonathanNappee是的,这是一个更好的主意