有没有办法用SQL把像'160806CD01‘这样的字符串转换成像'2016-08-06 00:00:00’这样的日期,其中年、月和日期分别是16、8和6?
发布于 2019-02-01 05:38:12
原则是首先提取字符串中包含日期的部分,然后使用转换函数将字符串部分转换为日期数据类型。
根据RDBMS的不同,使用的函数也会有所不同;下面是一些示例:
Oracle:
TO_DATE(SUBSTR(col, 1, 6), 'YYMMDD')MySQL/MariaDB:
STR_TO_DATE(SUBSTR(col, 1, 6), '%y%m%d')SqlServer:
CAST(CONCAT('20', SUBSTRING(col, 1, 6)) as datetime)Postgres:
TO_DATE(SUBSTRING(col, 1, 6), 'YYMMDD')https://stackoverflow.com/questions/54469436
复制相似问题