mysql中将时间戳转换为指定日期格式from_unixtime

Mysql 专栏收录该内容
20 篇文章 0 订阅

场景

给某客户用的POC数据落地在我司的测试环境,有程序拉取数据解析后落地到mysql中,再导出excel给客户,由于数据量不大且是测试环境,故没有开发专门的导出接口,而是Navicat中进行select查询再导出结果集,其中有个"发布时间"、"创建时间"等时间字段都是存的13位时间戳格式,用bigint字段类型存储的,需要将这个13位时间戳转换成"yyyy-MM-dd HH:mm:ss"格式显示。

问题

每次进行select from_unixtime(publish_time,'%Y-%m-%d %h:%i:%s') as publish_time from zhaoyin_leasing_overseas where ……

得到的publish_time 字段不仅没有按照预期格式转换,而且查询出来的是null值,起初以为是我format的问题,后经过多方求证还是无效。

结论

后来无意中尝试将13位毫秒级别时间戳换成10位的秒级别时间戳,竟然搞定了……

select from_unixtime(publish_time/1000,'%Y-%m-%d %h:%i:%s') as publish_time from zhaoyin_leasing_overseas where ……

经过测试发现,在mysql5.6.36和mysql5.7.23的版本中,from_unixtime(time,format),time字段都得为10位秒级别的时间戳才可以。

  • 1
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页

打赏

饭一碗

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值