提问人:James McGrath 提问时间:8/20/2022 更新时间:9/2/2022 访问量:43
将完整单词日期转换为数字
Convert full words date into numbers
问:
我在数据库中有一堆用全字写成的日期,我需要将它们转换为可用的日期字段。这是一次易,但有几百万行,所以手动进行是不可想象的。
“一九八九年一月二十六日”将变为“1989/01/26”
格式并不总是一样,我也可以有“一千九百九十年八月十九日”
理想情况下,在 SQL 中执行此操作会更容易,但我可以运行脚本并在之后更新数据库。
有什么建议吗?
答:
0赞
James McGrath
9/2/2022
#1
我的代码对于我的情况来说太具体了,无法在这里发布,但这是我为数字所做的伪代码,所以也许有人会省去头痛,尤其是法语数字。
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 年是“二十二十”,但它足以满足我的需求。
然后对于日期,我只找到该月的位置。如果是日、月、年,您可以使用月份作为分隔符来重建日期。如果是月、日、年,那么你必须找到序数(第一、第二、第十等)来区分年份和日期。
上一个:具有特定数量 1 的二进制随机数
评论