在Cassandra中存储时间戳的时区信息
我知道Cassandra将时间戳存储为自epoch以来的秒(或微秒)。因此,如果我关心特定事件发生的时区,我是否需要将其存储在单独的列中?对于如何存储,有什么最佳实践或建议吗?GMT的整数偏移量?我们每天在卡桑德拉集群中存储数百万个时间戳及其时区 我们建议将时间戳存储为两个值:在Cassandra中存储时间戳的时区信息,cassandra,timestamp,cql,Cassandra,Timestamp,Cql,我知道Cassandra将时间戳存储为自epoch以来的秒(或微秒)。因此,如果我关心特定事件发生的时区,我是否需要将其存储在单独的列中?对于如何存储,有什么最佳实践或建议吗?GMT的整数偏移量?我们每天在卡桑德拉集群中存储数百万个时间戳及其时区 我们建议将时间戳存储为两个值: 将时间戳本身存储为时间戳类型或bigint,并始终将其与UTC对齐(我们使用.NET datetimes,它从零年开始,而不是UNIX纪元,因此我们必须使用bigint。) 将UTC偏移量存储为bigint(以微秒为单位
这样,默认情况下,我们所有的时间戳都使用相同的时区。但是,每当我们需要在本地时间执行某些操作时,我们只需获取UTC偏移量列并从时间戳中减去它即可获得本地时间。您是否需要在任意时区(即不在您保存的偏移量中的时区)中操作时间戳?此方法是否有帮助?@CrescentFresh是-如果您知道日期时间始终存储在UTC中,并且需要在其他时区中操作,则始终可以通过对存储的日期时间应用UTC偏移量来计算第三个时区(不是UTC,不是存储的时区)中的日期时间。存储UTC偏移量是否有误?为什么不存储时区信息以便计算UTC偏移量呢。这样,如果UTC偏移量发生变化,您的值将进行调整。@JonathanNappee是的,这是一个更好的主意