处理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这一时刻的差