我遇到了日期格式问题,并希望有人可以帮助我!
我们的数据库有一个日期字段,由于导入源/格式不同,我们的编程团队将其格式化为字符字段。
我理想的目的是创建一个仅以日期结束的视图,然后我将在报告工具(dbxtra)中使用每日/每月分组的数据和报告。
示例数据:
" 2015年5月30日"
" 3/06/2015 12:00 AM"
我试过了:
使用:: date
substr取前10个字符
有什么建议吗?
答案 0 :(得分:0)
我会为此编写一个存储过程,您可以在sql查询中调用它。像这样的东西(伪代码):
CREATE OR REPLACE FUNCTION convertMessedUpStringsToDate(i_val1 varchar) RETURNS timestamp
declare
retval timestamp;
formatArray varchar[];
begin
-- build array with possible formats, most used in front
formatArray[0] = 'YYYY-MM-DD';
formatArray[1] = 'DD/MM/YYYY HH12:MI AM';
for i in 0 .. formatArray.count loop
begin
retval = to_timestamp(i_val, formatArray[i]);
exception
-- catch any exception and try the next format
end;
end loop;
return retval;
end;
另一种选择是使用正则表达式解析输入并找到匹配的模式。无论如何,我希望你没有太多不同的模式。