postgresql 字符串转date 如下 201610101010 12位varchar 转换为时间类型

2025-03-03 07:58:46
推荐回答(1个)
回答1:

你的adate的格式是否为年月日时分(示例就变成2016-10-10 10:10),可以用to_timestamp转换为日期时间值:
to_timestamp(adate, 'YYYYMMDDHH24MI')
不过,从你的需求来看,adate可能为数据表的字段,要提高执行效率的化,应该是将系统时间转换为字串来进行比较,而不是将字段值转换为日期时间值来比较。因为将字段转换为日期时间值后比较的化,肯定不能使用索引了(除非你定义了转换后的索引),而且每次查询都有左转换效率太差了。故这样来做筛选条件会比较好些:
where adate > to_char(current_timestamp, 'YYYYMMDDHH24MI')