You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何从VARCHAR(16 CHAR)类型列提取时间部分

提取VARCHAR类型时间列中的时间部分

针对你的需求——从VARCHAR(16 CHAR)类型的HIT_TIME列(示例值:01/01/2022 21:52)中提取时间部分,以下是不同数据库环境下的实现方案:

MySQL/MariaDB

方法1:使用SUBSTRING_INDEX

利用空格作为分隔符,取分割后的最后一段内容:

SELECT SUBSTRING_INDEX(HIT_TIME, ' ', -1) AS hit_time_only
FROM your_table;

方法2:使用RIGHT

由于字符串长度固定为16,时间部分占最后5位,直接截取右侧5个字符:

SELECT RIGHT(HIT_TIME, 5) AS hit_time_only
FROM your_table;

Oracle

方法1:SUBSTR + INSTR

定位空格位置后,截取后续内容:

SELECT SUBSTR(HIT_TIME, INSTR(HIT_TIME, ' ') + 1) AS hit_time_only
FROM your_table;

方法2:固定位置截取

已知时间部分从第12位开始,直接截取:

SELECT SUBSTR(HIT_TIME, 12) AS hit_time_only
FROM your_table;

SQL Server

方法1:SUBSTRING + CHARINDEX

找到空格位置后截取时间部分:

SELECT SUBSTRING(HIT_TIME, CHARINDEX(' ', HIT_TIME) + 1, 5) AS hit_time_only
FROM your_table;

方法2:使用RIGHT

同样利用固定长度截取右侧5位:

SELECT RIGHT(HIT_TIME, 5) AS hit_time_only
FROM your_table;

内容的提问来源于stack exchange,提问作者ARH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:13:21