SQL字符串数据清洗:如何去除字段内的日期时间部分
SQL去除日期时间字段中时间部分的常用方案
根据你使用的数据库类型不同,可以选择对应的函数实现时间部分的移除,常见数据库的处理方案如下:
- MySQL 环境
可以直接调用DATE()函数提取日期部分,示例代码:
如果字段以字符串格式存储,先转成日期时间类型再处理即可:SELECT DATE(待处理的日期时间字段) AS 纯日期字段 FROM 你的业务表;SELECT DATE(STR_TO_DATE(待处理的字符串字段, '%Y-%m-%d %H:%i:%s')) AS 纯日期字段 FROM 你的业务表; - PostgreSQL 环境
可以用类型强转或者DATE_TRUNC函数实现:-- 方法1:直接强转DATE类型 SELECT 待处理的日期时间字段::DATE AS 纯日期字段 FROM 你的业务表; -- 方法2:按天截断时间部分 SELECT DATE_TRUNC('day', 待处理的日期时间字段)::DATE AS 纯日期字段 FROM 你的业务表; - SQL Server 环境
可以用CAST或者CONVERT函数处理:-- 方法1:CAST转类型 SELECT CAST(待处理的日期时间字段 AS DATE) AS 纯日期字段 FROM 你的业务表; -- 方法2:CONVERT指定格式转换 SELECT CONVERT(DATE, 待处理的日期时间字段) AS 纯日期字段 FROM 你的业务表; - Oracle 环境
调用TRUNC函数截断时间部分即可:SELECT TRUNC(待处理的日期时间字段) AS 纯日期字段 FROM 你的业务表;
注意:如果待处理内容是字符串格式而非原生日期时间类型,建议先完成格式校验、转成日期时间类型再做截断处理,避免出现格式不匹配导致的空值或异常结果。如果需要输出字符串格式的纯日期,处理完成后再转成对应格式的字符串即可。
内容的提问来源于stack exchange,提问作者Simon Soltanian
相关产品推荐
相关产品推荐

