想把年份涉及公元前后按照升序排起来,试了很多种办法都没法衔接,有没有大大有解决方案的~
数据库排序问题
相关帖子
-
先设置左边这列排序,再设置右边这列排序,一共设置两个排序。我觉得应该行忘记了,公元前后一个是由大到小一个是由小到大
1 操作JeffreyChen 在 2024-07-18 16:22:54 更新了该回帖 -
-
MisakaImouto • • 1
可以创建一个模板列,粘贴下面代码,然后模板列降序或升序。之后可以隐藏模板列,既不影响查看,也不影响后续插入新数据的排序。
.action{ $formatYear := .年份 }.action{ if eq .公历 "公元前" }.action{ $formatYear = (cat "0" .年份) }.action{ end }.action{ if eq .公历 "公元" }.action{ $formatYear = (cat "1" .年份) }.action{ end }.action{ $formatYear }
注意:把代码中的
.公历
换成你的 公历... 列名,截图中看不列的全名,所以需要自己补充完整。2 回复 -
-
-
-
-
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 更新了该回帖 -
改进一下,把零都去掉
.action{ $Year := .年份 } .action{ if eq .公历纪元 "公元前" } .action{ cat "-" (atoi (trunc 4 $Year))} .action{ else if eq .公历纪元 "公元" } .action{ (atoi (trunc 4 $Year))} .action{ end }
2 回复1 操作mozhu 在 2024-07-18 22:12:36 更新了该回帖原来这个排序这么智能@JeffreyChen 直观一点mozhu •大大,这个月和日要加进去怎么加呀 2333@zbqzone123 加进去做啥。。这个就是用来排序的,直接看你原来的就行。mozhu •相同年份的会乱~ -
-
-
-
JeffreyChen • • 4 评论
你的「年份」的格式要是能统一的话,我可以再给你改一下
我观察到的是:
- XXXX 年
- XXXX 年(约)
- XXXX 年 XX 月 XX 日
这些格式分别在什么情况下使用?
一般除了这三种还有个 xxx 年 xx 月,有些事件无法精确,如果不方便处理的话 约那个我也可以去掉~@zbqzone123 就是说还有一种是没有「日」的是吧?@zbqzone123 我懂了。你之前发的文档我没有加载全部数据库条目,没看到下面还有嗯嗯 -
-
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 更新了该回帖哇。谢谢~
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于