You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Scylla CQL中将writetime()返回值转为datetime格式?

在Scylla cqlsh中将WRITETIME()结果转为可读Datetime

问题原因

Scylla CQL不允许在SELECT子句中直接对函数调用结果(比如WRITETIME())执行算术运算,这就是你执行WRITETIME(val)/1000时触发语法错误的原因。

解决方案

方案1:使用子查询实现转换

通过子查询将WRITETIME()的结果转为普通列,再对该列做算术运算并转换为可读时间:

SELECT TO_TIMESTAMP(wt / 1000) AS readable_write_time
FROM (
    SELECT WRITETIME(val) AS wt
    FROM your_table
    WHERE -- 填写你的过滤条件,比如 id = 1
);
  • 说明:WRITETIME()返回微秒级整数,除以1000转为毫秒级时间戳,TO_TIMESTAMP()将毫秒数转换为标准datetime格式。

方案2:在cqlsh中用Python客户端处理

cqlsh基于Python,可直接在交互式环境中编写代码批量转换结果:

  1. 先执行查询获取时间戳:
SELECT WRITETIME(val) AS wt FROM your_table WHERE -- 填写你的过滤条件;
  1. 导入datetime模块并转换单个结果:
from datetime import datetime
# 替换为查询得到的时间戳数值
print(datetime.fromtimestamp(1620000000000000 / 1000000))
  1. 批量处理查询结果:
rows = session.execute("SELECT WRITETIME(val) AS wt FROM your_table WHERE -- 填写你的过滤条件")
for row in rows:
    print(datetime.fromtimestamp(row.wt / 1000000))

内容的提问来源于stack exchange,提问作者soogui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:11:14