处理1970年以前的时间转换问题
mysql有FROM_UNIXTIME函数,考虑到
- 时间戳是毫秒,FROM_UNIXTIME参数是秒
- FROM_UNIXTIME不能处理1970年之前的时间戳,因为都是负数
- 时间戳是没有时区的,转换成DATE要考虑时区
所以最终可用的写法是(假设数据存在basic->>’$.basic.birthday’):
DATE(DATE_ADD(FROM_UNIXTIME(0), INTERVAL basic->>’$.basic.birthday’/1000 SECOND))
实际是计算时间戳与当地时区的1970-1-1 00:00:00这一时刻的差