SQL:从OCR';编辑文件
我从几个经过OCR的SQL:从OCR';编辑文件,sql,sql-server,date,ocr,data-cleaning,Sql,Sql Server,Date,Ocr,Data Cleaning,我从几个经过OCR的.pdf文档中获得了各种日期,这些日期以DD/MM/YYYY格式导入。由于文件是复印件,因此质量不高,导致日期难以区分/和1,如下所示: 问题:0110212015 2015年2月1日 01102/2015 所需输出:01/02/2015 由于字符串保留了原始日期的长度,我希望用/替换Nth位置的字符。据我所知以及从搜索中获得的信息,SQL没有那么简单的功能。它们的替代或替换功能是否可以针对我需要更改的确切1?或者我可以使用现有的值重新构造字符串吗?SQL Server确实有
.pdf
文档中获得了各种日期,这些日期以DD/MM/YYYY
格式导入。由于文件是复印件,因此质量不高,导致日期难以区分/
和1
,如下所示:
问题:0110212015
2015年2月1日
01102/2015
所需输出:01/02/2015
由于字符串保留了原始日期的长度,我希望用
/
替换Nth
位置的字符。据我所知以及从搜索中获得的信息,SQL没有那么简单的功能。它们的替代或替换功能是否可以针对我需要更改的确切1
?或者我可以使用现有的值重新构造字符串吗?SQL Server确实有一个函数来执行此操作。。。它叫
所以你的表情看起来像:
STUFF(STUFF (DateString , 3, 1, '/'), 6, 1, '/')
您可以使用STUFF函数:
select stuff(stuff('0110212015',3,1,'/'),6,1,'/')
在SQL Server中,将允许您提取字符串的部分。然后将它们重新组合并转换为一个真实的日期。@MattGibson将子字符串(LTRIM([date]),1,2)+'/'+子字符串(LTRIM([date]),4,2)+'/'+子字符串(LTRIM([date]),7,4)作为[Cleaned_date]完美地工作。。作为答案发布,如果您愿意,我会将您的回答标记为正确。就个人而言,我可能会接受
内容中的一个答案;有很多不同的方法可以做到这一点,考虑到它们在不同的数据库系统中几乎都是非标准的,没有一种是“完美”的解决方案。(STUFF
在SQL Server上可能更整洁,但子字符串和连接可能更容易被其他语言的人阅读…)