重新格式化时间戳以保留时间和时区

sqxo8psd  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(330)

我想创建一个在不同列中包含日期和时区的表。例如:

Date 20170311      Time 10:32:24+1300


格式必须与上述相同。
当我创建表时,date被设置为date类型,time被设置为timestamp类型。
当我插入日期时,我必须遵循某种格式,如2017-03-11,如何使其与所示表格相同。
在插入时间和时区时,我必须单独插入日期,例如'2017-03-22t10:37:50+1300'有什么方法可以重新格式化它吗?
使用此格式“2017-03-22t10:37:50+1300”插入后,表中的时间和时区发生了更改,如何保持与输入相同?

CREATE TABLE example (id int, work_date date, sequence timestamp);

INSERT INTO example (id int, work_date date, sequence timestamp) VALUES (1, '2017-03-22', '2017-03-22T10:37:50+1300')

预期结果:1 20170322 10:37:50+1300
实际结果:1 2017-03-22 2017-03-21 21:37:50.000000+0000

4si2a6ki

4si2a6ki1#

cassandra有几种与日期和时间相关的数据类型- date , time ,和 timestamp ,只有最后一个有时区的概念。
时间戳的格式是您的责任-内部数据存储为长(8字节),表示自epoch以来的毫秒数,然后由相应的驱动程序转换为文本表示-以防 cqlsh ,格式由datetimeformat参数控制。同样,对于 date & time 数据类型-它们在数据库中作为数字而不是字符串保存。
如果您正在从自己的程序访问数据,那么您可以根据需要格式化时间。

相关问题