[ES]ElasticSearch强转日期的时区问题

问题

        由于ES不能修改时区,且默认时区始终为UTC。

        当才查询数据时,通过强转获得的日期并不是想要的,通过分析发现,正是由于默认时区导致结果相差了8个小时。

        查询语句:

POST http://localhost:9200/_sql?format=text

{
  "query": "SELECT 1701387000000::date as dt, DATETIME_FORMAT(1701387000000::TIMESTAMP,'yyyy-MM-dd')::DATE as df",
  "time_zone":"Asia/Shanghai"
}

        返回结果:

                    dt                     |                    df           
------------------------------------+------------------------------------
2023-11-30T00:00:00.000Z|2023-12-01T00:00:00.000Z

       可以看出,通过时间戳强转获得的日期,由于跨天,导致数据相差一天,更加严重的是,如果将数据归类到月份统计中,势必出现问题,所以强转方式,即便指定了时区,却不能生效

结论

       所以在处理时间日期时,特别注意时区问题,需通过时间日期函数+指定时区参数方式来达到期望的目标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值