【发布时间】:2019-03-04 12:15:57
【问题描述】:
我有一个不总是相同的字符串文件名,我正在努力想出一些干净且不太繁琐的东西,它将去除刺痛的日期部分并将其替换为 yyyyMMdd 或 yyMMdd(取决于文件名字符串格式)。
例如,如果文件名如下所示:
g_monthlysales_20130930_2500g.txt
我想把它转换成这个:
g_monthlysales_yyyyMMdd_2500g.txt
或者如果文件名看起来像这样:
gx130930rtwtg.txt
我想把它转换成这个:
gxyyMMddrtwtg.txt
这些是文件名唯一可能的两种日期格式,并且大多数日期位于相同的位置,但其他文件名字符会有所不同,例如我也有 sx141001theuf.txt 或 @987654326 @
非常感谢任何帮助。
【问题讨论】:
-
嗨,我会将这项任务分为两个步骤。 1) 从字符串中获取数字 2) 将数字转换为日期(比如循环遍历您所在地区可接受的格式的函数)。
-
您在这里查看了多少种不同的日期格式?
-
9 月没有 31 天。您想只检测字符串中的正确日期吗?
-
对可能的日期格式的详细信息进行了上述编辑。那是我的错误,字符串中的日期将始终是有效日期,因此无需验证它们。
-
大部分日期都在同一个位置 -- 所以你不只是有两种文件名格式吗?有多少种变化?
标签: sql date replace sql-server-2012