clickhouse学习笔记-9-问题集

从mysql同步数据到ck,有时间字段为null,同步不成功

方案一:

修改ck的字段,允许为null

 CK
 `collect_local_date` Nullable(DateTime) COMMENT '采集的当地时间',

方案二:

数据同步的过程中,如果mysql的字段为null,则设置默认时间

mysql
ifNull(`collect_local_date`, toDateTime('0000-00-00 00:00:00')),
时间转换
SELECT 
  'UK' as country,
  toDateTime('2020-02-28 05:11:31', 'UTC') AS origin_time,
  toDateTime(CASE
        WHEN country='US' THEN toString(origin_time, 'PST8PDT')
        WHEN country='UK' THEN toString(origin_time, 'Europe/London')
        WHEN country='FR' THEN toString(origin_time, 'Europe/Paris')
        WHEN country='JP' THEN toString(origin_time, 'Asia/Tokyo')
        WHEN country='ES' THEN toString(origin_time, 'Europe/Madrid')
        WHEN country='IT' THEN toString(origin_time, 'Europe/Rome')
        WHEN country='DE' THEN toString(origin_time, 'Europe/Berlin')
        WHEN country='MX' THEN toString(origin_time, 'America/Mexico_City')
        WHEN country='CA' THEN toString(origin_time, 'PST8PDT')
        WHEN country='IN' THEN toString(origin_time, 'Indian/Cocos')
        WHEN country='CN' THEN toString(origin_time, 'Asia/Shanghai')
        WHEN country='AU' THEN toString(origin_time, 'Australia/Canberra')
        WHEN country='AE' THEN toString(origin_time, 'Asia/Dubai')
        ELSE toString(origin_time, 'UTC')
    END) as local_date_time;

ps:
case里做toDateTime转换,存在问题,换成toString
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值