千行
1
原来我是直接使用dataview自带的元信息进行检索,后来发现同步有时候会更改文件的元信息,所以我现在就把文件的创建时间和更新时间写在yaml区了,只是这样,我才疏学浅,改不来dv的代码,特来求助
我以前正常使用的,使用dv元信息的,检索一周内有过更新的文件的代码如下
Table without id file.link as 一周内有过更新的文件列表,file.mtime as 更新时间降序
From ""
WHERE file.mtime >= date(today) - dur(7 day)
Sort file.mtime desc
我在yaml区写的时间信息如下
created: 2022-12-26 19:06:48 星期一晚上
modified: 2022-12-26 20:21:08 星期一晚上
我现在想把dataview的通过file.mtime元信息检索的方式,转成使用yaml区的modified键值来进行检索。我尝试使用了where contains的方式,但是因为modified后面的时间是不断变动的,所以失败了
还请诸位大神不吝赐教
班图
2
file.mtime是文件属性里的修改时间, 不是yaml里的键值
千行
3
是的,可能是我没写清楚。我上面贴的那个dv代码,是现在可以正常使用的,使用dv元信息的代码
但是我现在想把它转成使用yaml里的键值,但是不知道应该如何更改才行
班图
4
把file.mtime换成你自己的值modified不就行拉?
千行
5
感谢,我试着换了,但是时间上不对了,使用元信息的时候就是7天准的,换成yaml区的键值之后,就变成所有时间都包含了,不止是7天了。我甚至把一个文件的modified改成了2021年,居然还是出现在了dataview的结果下面
我修改之后的dv代码如下
Table without id file.link as 一周内更新过的文件列表,modified as 更新时间降序
From ""
WHERE modified >= date(today) - dur(7 day)
Sort modified desc
大佬看看是不是哪里改错了?
班图
6
应该是时间格式问题, 要不你把yaml全部改成标准的格式, 或者直接改用js, 用js的moment把modified格式化就行了
xsdc
(xsdc)
7
有同样问题。
是打算做一个显示未来一周节日的表格,按照上面的代码试了下,写成这样算是能用了:
WHERE 日期 <= date(today) + dur(7 day) and 日期 >= date(today)
yaml中的值是字符串,date()出来的是moment时间对象,需要用转换函数
我也有这个问题,想用dataview筛选YAML里日期为今年的笔记,但用了上述的语法没成功
刚才去英文社区找到了解决方法
我的YAML模版为
- 书名 ::
- 作者 ::
- 分类 ::
- 出版社 ::
- 阅读方式 ::
- 开始时间 :: YYYY-MM-DD
- 结束时间 :: YYYY-MM-DD
目的:用dataview查询出2022年至今的读书摘录,最终生效的代码为:
dataview
table 作者,分类,阅读方式,结束时间
from "读书摘录"
where 结束时间 <= date(today) and 结束时间 >= date(2022-01-01)
sort 结束时间
希望对你有帮助
1 个赞
翟十五
(十五)
12
我也遇到了相似的问题。一开始是筛选大于某个日期的时间,显示筛选结果为零,但是明明有符合条件的记录。后来看了你的帖子,我把date(“2022-01-01”)里的引号去掉了,就成功了。问了半天newbing,最后还是在这个论坛解决的问题。
谢谢层主分享。