我正在尝试编写一个识别任何日期格式并将其转换为单日期时间格式的plsql存储过程'mm/dd/yyyy hh:mi:ss'
。我该怎么做。我尝试使用案例陈述,但有这么多的日期组合,它不可能为所有人编写案例陈述。 例如:27-Oct-1967
,October 27 1967 11:15:45
,1967-OCT-27
等 如何将所有这些转换为单一格式。 谢谢。在PLSQL中识别日期格式
1
A
回答
0
也许这可以帮助你:
CREATE TABLE temp_date
AS
SELECT '1967-OCT-27' some_date
FROM dual
UNION
SELECT '27-Oct-1967' FROM dual
UNION
SELECT 'October 27 1967 11:15:45' FROM dual
/
Declare
CURSOR i_cur IS
Select some_date
From temp_date;
--
v_date1 Varchar2(30);
v_date2 Varchar2(30);
v_date3 Varchar2(30);
v_char Varchar2(30);
v_cnt Number:= 0;
Begin
For i_rec IN i_cur
Loop
v_cnt:= v_cnt + 1;
Begin
v_date1:= to_char(to_date(i_rec.some_date), 'MM/DD/YYYY hh24:mi:ss');
dbms_output.put_line(v_cnt||'.'||chr(9)||v_date1);
EXCEPTION
When Others Then
Begin
v_date2:= to_char(to_date(i_rec.some_date, 'MM/DD/YYYY hh24:mi:ss'), 'MM/DD/YYYY hh24:mi:ss');
dbms_output.put_line(v_cnt||'.'||chr(9)||v_date2);
EXCEPTION
When Others Then
Begin
v_date3:= to_char(to_date(i_rec.some_date, 'YYYY-MON-DD'), 'MM/DD/YYYY hh24:mi:ss');
dbms_output.put_line(v_cnt||'.'||chr(9)||v_date3);
EXCEPTION
When Others Then
-- Insert into Exceptions table (or any temp table) then convert... --
v_char:= i_rec.some_date;
dbms_output.put_line(v_cnt||'. '||chr(9)||i_rec.some_date||' : '||v_char);
End;
End;
End;
End Loop;
End;
/
1. 10/27/1967 00:00:00
2. 10/27/1967 00:00:00
3. 10/27/1967 11:15:45
+0
不客气!总是乐于帮助! – Art
1
简单to_char()
会做,
select to_char(yourDateField,'mm/dd/yyyy hh:mi:ss') from dual;
0
的将是格式化日期到您需要的格式,最希望的方式。然后做任何你需要的计算。
否则,你将不得不写很大数量的select case
s来定义格式。并不是说它没有意义,因为日期可以有很多不同的格式......如提到Mat
。而且Date
是一个可以被你的system
影响的组件。使用给你可能甚至不知道如果此输入是作为一个字符串或实际日期To_Date()
转换日期输入到所需的格式:
你可以试试下面。所以你可能需要一些验证,以确保它是一个适当的日期。
SELECT TO_DATE(mydate,'mm/dd/yyyy hh:mi:ss') FROM Dual;
+0
感谢bonCodigo! – Orion
相关问题
- 1. 识别日期格式
- 2. 识别日期格式
- 3. TryParseExact到SQL日期格式识别
- 4. jInstagram无法识别的日期格式
- 5. 如何在windows dir命令中识别日期的格式?
- 6. 日期时间格式 - 一个数字日不被识别
- 7. 识别客户端机器中的日期格式
- 8. 如何识别perl中给定日期的格式
- 9. 在保存json之前,spring roo不能识别日期格式
- 10. Excel日期识别
- 11. 模式匹配来识别日期格式
- 12. Yii2,ExportMenu:如何格式化日期,Excel会自动将其识别为日期?
- 13. 字符串不被识别为日期时间格式asp.net?
- 14. MVC 4日期格式化无法识别输入掩码
- 15. 保证被Excel识别的日期格式
- 16. Oracle时间戳记 - 未识别日期格式
- 17. JavaScript的解析会识别什么字符串日期格式?
- 18. 警告:oci_execute():ORA-01821:日期格式无法识别
- 19. 如何使javascript/d3识别日期格式
- 20. 字符串未被识别为有效日期时间格式
- 21. 使Excel识别从PHP发送的日期格式
- 22. 使Excel识别自定义日期/时间格式
- 23. Jira Rest API:无法识别的结束日期格式
- 24. 使用VBA更改为日期格式时Excel不识别年
- 25. 错误ORA-01821 “的日期格式无法识别”
- 26. CDate识别澳大利亚日期格式?
- 27. NSDateFormatter无法识别日期
- 28. Excel无法识别日期
- 29. Excel无法识别日期
- 30. 任何人都可以在SQLite中识别这种日期/时间格式吗?
如果你仔细想想,你会发现你根本无法。如果你把'2013/02/01'作为输入,会怎样?那是1月2日还是2月1日? – Mat