作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我处于一种尴尬的搜索和替换情况。我正在为我的雇主开发一个新数据库,现在正在将旧数据导入到新的 MySQL 数据库中。我面临的问题是,旧数据库是一个名为 PC-File 的旧版数据库,它使用 .dbf 文件,因此我找到了一个 dbf 查看器,它允许我将信息导出到 .csv 文件中,但是,特别是一个文件,有超过 5000 条世纪日期不正确的数据记录...而不是显示 12/28/2012 - 它将显示 12/28/1998。我在互联网上上下搜索,试图找到一种方法来解析“01/01/1900 - 01/01/1914”年份范围之间的日期信息,并将“19”替换为“20”。我也没有找到成功的解决方案。
我希望我的问题足够清楚了......
我愿意接受 excel、C#、vb.net 和 MySQL 的解决方案;任何意见或建议将不胜感激。
这是我的 .CSV 文件的示例:
"CUSTOMER","ORDER_DATE"
670,"4/18/1913"
670,"6/25/1913"
670,"6/25/1913"
667,"9/18/1912"
665,"9/14/1912"
664,"12/8/1920"
664,"12/8/1920"
658,"9/23/1911"
658,"2/6/1912"
655,"5/11/1911"
651,"12/10/1910"
651,"12/10/1910"
651,"12/14/1910"
648,"6/2/1910"
648,"6/2/1910"
648,"6/2/1910"
648,"6/2/1910"
感谢大家的任何反馈或提示。
最佳答案
如果您已将其存储在数据库中,请运行以下 SQL
MySQL 解决方案:
update myTable
set ORDER_DATE = DATE_ADD(ORDER_DATE, INTERVAL 100 YEAR)
where ORDER_DATE between '1900-01-01' and '1914-01-01'; /* Change this cutoff date range as appropriate */
无论你使用什么技术,逻辑都是一样的;选择日期年份错误的所有记录,然后通过添加 100 年进行更正。
Excel 解决方案是:
=IF(AND(A1>=DATE(1900,1,1),A1<=DATE(1914,1,1)),DATE(YEAR(A1)+100,MONTH(A1),DAY(A1)),A1)
其中 A 列包含您的日期值。
关于c# - 如何解析和替换大型 csv 文件中不正确的跨世纪日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19187805/
我是一名优秀的程序员,十分优秀!