CQL中如何去除Time类型字段的末尾零值?
解决CQL中Time类型字段去除末尾零值的问题
嘿,刚接触CQL碰到这个格式问题太正常了!我来给你两个实用的解决办法:
首先得说下为啥会出现那些末尾的零——Cassandra的Time类型是存储到纳秒级的,所以默认查询时会显示完整的HH:mm:ss.nnnnnnnnn格式,哪怕纳秒部分全是0也会展示出来。
方法1:使用dateformat函数(推荐,Cassandra 3.10及以上版本支持)
直接通过格式化函数指定你想要的时间格式,就能精准去掉末尾的纳秒部分:
SELECT station_name, dateformat(arrival_time, 'HH:mm:ss') AS arrival_time FROM your_table;
这个函数会把Time类型按照你定义的HH:mm:ss格式输出,刚好对应你想要的06:05:00样式。
方法2:字符串截取(通用所有版本)
如果你的Cassandra版本比较旧,不支持dateformat,可以用字符串截取的方式,直接取前8位字符:
SELECT station_name, substring(arrival_time, 1, 8) AS arrival_time FROM your_table;
因为默认输出的Time字符串格式固定是HH:mm:ss.nnnnnnnnn,前8位正好是小时、分钟、秒的部分,完美符合你的需求。
执行上面任意一个查询后,你就能得到想要的结果:
station_name | arrival_time
--------------+--------------------
Wellington | 06:05:00
内容的提问来源于stack exchange,提问作者junhaotee
相关产品推荐
相关产品推荐

