SQL中有没有不带时区的CURRENT_TIMESTAMP替代方案?
解决方案
你可以使用LOCALTIMESTAMP作为替代函数,它返回的是不带时区信息的当前时间戳,同时可以将字段类型调整为无时区的timestamp类型,修改后的建表语句如下:
CREATE TABLE mytable ( inserted_on timestamp DEFAULT LOCALTIMESTAMP );
如果你不想修改原有字段类型,也可以对CURRENT_TIMESTAMP做类型转换,写法如下:
CREATE TABLE mytable ( inserted_on timestampz DEFAULT CURRENT_TIMESTAMP::timestamp );
补充说明
CURRENT_TIMESTAMP返回值类型为timestamp with time zone,自带时区偏移信息,适配timestampz类型字段LOCALTIMESTAMP是SQL标准定义的函数,主流关系型数据库都支持,返回值类型为timestamp without time zone,不会携带时区相关后缀,完全匹配你不需要时区信息的存储需求
内容的提问来源于stack exchange,提问作者Secret Agent
相关产品推荐
相关产品推荐

