PostgreSQL合并两列后去除连字符、空格、冒号的实现求助
实现方案
你操作失败的核心原因是直接对datetime类型的返回值调用字符串处理函数,未先做类型转换。更稳妥的方式是直接用数据库自带的日期格式化函数,不需要额外做字符替换,不同主流数据库的实现如下:
- MySQL
SELECT DATE_FORMAT(documentation.nsma1_date + documentation.nsma1_time, '%Y%m%d%H%i%s') AS `Start Date` FROM documentation
- PostgreSQL
SELECT TO_CHAR(documentation.nsma1_date + documentation.nsma1_time, 'YYYYMMDDHH24MISS') AS "Start Date" FROM documentation
- SQL Server
SELECT FORMAT(documentation.nsma1_date + documentation.nsma1_time, 'yyyyMMddHHmmss') AS "Start Date" FROM documentation
如果你坚持用字符替换的方式实现,需要先把日期时间值转为字符串类型再处理,以MySQL为例的写法如下:
SELECT REPLACE(REPLACE(REPLACE(CAST(documentation.nsma1_date + documentation.nsma1_time AS CHAR), '-', ''), ' ', ''), ':', '') AS `Start Date` FROM documentation
内容的提问来源于stack exchange,提问作者Perk8
相关产品推荐
相关产品推荐

