String 甲骨文选择制作月份
我有以下选择,以获取包含时间戳的文件名,并将其转换为日期/时间字段的正确格式,但当我使用to_字符(to_Date…)时,它会导致我的第一个子字符串和第三个子字符串重复。当我不使用to_字符(to_Date…)时,它不会重复String 甲骨文选择制作月份,string,oracle,date,select,String,Oracle,Date,Select,我有以下选择,以获取包含时间戳的文件名,并将其转换为日期/时间字段的正确格式,但当我使用to_字符(to_Date…)时,它会导致我的第一个子字符串和第三个子字符串重复。当我不使用to_字符(to_Date…)时,它不会重复 SELECT SUBSTR(COMPARE_FILENAME, INSTR(FILENAME, 'e', 1) + 7, 2) ||'-'|| TO_CHAR(TO_DATE(SUBSTR(FILENAME, INSTR(FILENAME, 'e', 1) + 5
SELECT
SUBSTR(COMPARE_FILENAME, INSTR(FILENAME, 'e', 1) + 7, 2) ||'-'||
TO_CHAR(TO_DATE(SUBSTR(FILENAME, INSTR(FILENAME, 'e', 1) + 5, 2), 'MM')) ||'-'||
SUBSTR(FILENAME, INSTR(FILENAME, 'e', 1) + 1, 2) ||' '||
SUBSTR(FILENAME, INSTR(FILENAME, 'e', 1) + 9, 2) ||'.'||
SUBSTR(FILENAME, INSTR(FILENAME, 'e', 1) + 11, 2) ||'.'||
SUBSTR(FILENAME, INSTR(FILENAME, 'e', 1) + 13, 2) AS TIME
FROM TABLE1 WHERE ID = 1662;
我从中选择的列有以下内容:name200601225511.txt
它返回这个:01-01-JUN-20-20 22.55.11
获取包含时间戳的文件名,并将其转换为日期/时间字段的正确格式
不需要这种复杂的字符串解析逻辑。您可以使用双引号定义包含文字部分的格式说明符
这将正确地将字符串解析为date
s:
to_date(filename, '"Name"YYYYMMDDHH24MISS".txt"')
:
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
select to_date('Name20200601225511.txt', '"Name"YYYYMMDDHH24MISS".txt"') filedate from dual
|文件日期|
| :------------------ |
| 2020-06-01 22:55:11 |
谢谢!这正是我所希望的!如果它对你有效,那么你必须接受答案,这样你的问题就会被标记为已解决。 | FILEDATE | | :------------------ | | 2020-06-01 22:55:11 |