Phoenix中日期与时间戳的相关转换“yyyy-MM-dd HH:mm:ss”

1 篇文章 0 订阅
1 篇文章 0 订阅

Phoenix时间日期格式转换为"yyyy-MM-dd HH:mm:ss"

问题描述

Phoenix数据库表create_time字段时间格式在导入数据过程中发生了格式错误:2022-03-1709:42:29,我们想把格式转换成正确的格式:2022-03-17 09:42:29,Phoenix不像MySQL那样拥有功能强大的时间格式化函数,我们实现时间格式化需要采用Phoenix的常用函数。

我们需要了解的几个Phoenix函数

  1. SUBSTR ,SUBSTR(“create_time”,0, 10)截取前十位字符串;
  2. LPAD,LPAD(SUBSTR(“create_time”,11, 9),9,’ ')截取时间最后几位且最左侧加空格;
  3. LENGTH,字符串长度;

实现过程

  1. 先根据id查询出某一条存在问题的数据且拼接成我们需要的正确格式
SELECT "id",SUBSTR("create_time",0, 10) ||LPAD(SUBSTR("create_time",11, 9),9,' ') AS "create_time" ,"create_time"  AS care,LENGTH ("create_time")
FROM OAM_DCIM.ACTIVE_POWER_HIS WHERE "id" ='119223370392630990807';
  1. 查询create_time格式不正确的所以数据
 SELECT "id",SUBSTR("create_time",0, 10) ||LPAD(SUBSTR("create_time",11, 9),9,' ') AS "create_time" ,"create_time"  AS care,LENGTH ("create_time")
FROM OAM_DCIM.ACTIVE_POWER_HIS WHERE LENGTH ("create_time")= 18
  1. 更新所有格式不正确的时间
UPSERT INTO OAM_DCIM.ACTIVE_POWER_HIS ("id","create_time") 
SELECT "id",SUBSTR("create_time",0, 10) ||LPAD(SUBSTR("create_time",11, 9),9,' ') AS "create_time"  
FROM OAM_DCIM.ACTIVE_POWER_HIS WHERE LENGTH ("create_time")= 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值