想把年份涉及公元前后按照升序排起来,试了很多种办法都没法衔接,有没有大大有解决方案的~
数据库排序问题
相关帖子
- 其他回帖
-
JeffreyChen • • 2 • 1 评论
模板写好了,现在支持 5 位数年份、年份也不必要是 4 位了(开头的 0 填不填都行):
.action{ $Year := .年份 } .action{ if and (eq .公历纪元 "公元前") .年份 } .action{ $numYear := sub 99999 (atoi (trimSuffix "年" (regexFind "[0-9]\\d{0,4}年" $Year))) } .action{ $numYear = list (trunc (int (sub 5 (len (toString $numYear)))) "00000") $numYear | join "" } .action{ $numMonth := sub 99 (atoi (trimSuffix "月" (regexFind "[0-9]\\d{0,1}月" $Year))) } .action{ $numMonth = list (trunc (int (sub 2 (len (toString $numMonth)))) "00") $numMonth | join "" } .action{ $numDay := sub 99 (atoi (trimSuffix "日" (regexFind "[0-9]\\d{0,1}日" $Year))) } .action{ $numDay = list (trunc (int (sub 2 (len (toString $numDay)))) "00") $numDay | join "" } .action{ list "1" $numYear $numMonth $numDay | join "" } .action{ else if and (eq .公历纪元 "公元") .年份 } .action{ $numYear := trimSuffix "年" (regexFind "[0-9]\\d{0,4}年" $Year) } .action{ $numYear = list (trunc (int (sub 5 (len (toString $numYear)))) "00000") $numYear | join "" } .action{ $numMonth := trimSuffix "月" (regexFind "[0-9]\\d{0,1}月" $Year) } .action{ $numMonth = list (trunc (int (sub 2 (len (toString $numMonth)))) "00") $numMonth | join "" } .action{ $numDay := trimSuffix "日" (regexFind "[0-9]\\d{0,1}日" $Year) } .action{ $numDay = list (trunc (int (sub 2 (len (toString $numDay)))) "00") $numDay | join "" } .action{ list "2" $numYear $numMonth $numDay | join "" } .action{ else } 0 .action{ end }
1 操作JeffreyChen 在 2024-07-20 18:22:29 更新了该回帖哇。谢谢~ -
JeffreyChen • • 1
写好了。
这个模板对你的「年份」有点要求:年份只能是 4 位数,少一位多一位都不行。(你要是真需要超过 4 位数的年份了再来找我)
你只需要用下面这个单行的模板替换你那个模板列里的模板就行了,然后可以右键表头把模板列隐藏起来。
.action{ $Year := .年份 }.action{ if eq .公历纪元 "公元前" }.action{ cat "1" (sub 9999 (atoi (regexFind "[0-9]{4}" $Year))) }.action{ else if eq .公历纪元 "公元" }.action{ cat "2" (regexFind "[0-9]{4}" $Year) }.action{ else }0.action{ end }
另外还有个地方要注意:因为排序的原因,新建条目的时候可能会跳动一下,没有选择「公历纪元」的条目会排序在数据库最上面
原始带缩进的模板是:
.action{ $Year := .年份 } .action{ if eq .公历纪元 "公元前" } .action{ cat "1" (sub 9999 (atoi (regexFind "[0-9]{4}" $Year))) } .action{ else if eq .公历纪元 "公元" } .action{ cat "2" (regexFind "[0-9]{4}" $Year) } .action{ else } 0 .action{ end }
1 回复1 操作JeffreyChen 在 2024-07-18 21:54:11 更新了该回帖 -
- 查看全部回帖
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于