将完整的单词日期转换为数字



我在数据库中有一堆日期,它们是用全文写的,我需要将它们转换为可用的日期字段。这是一次性交易,但有几百万条线路,所以手动操作是不可想象的。

"一九八九年一月二十六日;将变成";1989/01/26";

格式并不总是一样的,我也可以有"1990年8月19日;

理想情况下,用SQL做这件事会更容易,但我可以运行脚本并在之后更新数据库。

有什么建议吗?

我的代码太具体了,无法在这里发布,但这里有一个我为数字所做的伪代码,所以也许有人会省去头疼的事,尤其是法语数字。

NumberString = 'Nineteen hundred ninety nine'
-- Replace each word individually by their value : Nineteen hundred ninety nine would be 19,100,90,9 (or 10,9,100,4,20,10,9 in French)
NumberString= '19 100 90 9'    
-- For French only, replace '4 20' by 80 (easier for the next step)
Total = 0
NumberArray = NumberString.SplitOnSpaces
FOREACH Numbers as Number
IF Number is not a power of 100 THEN Total += Number
IF Number is a power of 100 THEN
IF Total%Number = 0 THEN Total += Number
ELSE 
ModuloTemp = Total%Number
Total -= ModuloTemp
Total += ModuloTemp * Number
END

当数字被分为几个部分时,它是不起作用的,比如2020年是"二十",但它已经足够满足我的需求了。

然后我就找到了这个月的位置。如果是天、月、年,则可以使用月作为分隔符来重新生成日期。如果是月、日、年,那么你必须找到序号(第一、第二、第十等(来区分年份和日期。

相关内容

  • 没有找到相关文章

最新更新