Skip to content

使用 obsidian tasks 进行简单查询

本文将简单介绍如何使用obsidian tasks进行简单查询。

说明

tasks用户指南:https://publish.obsidian.md/tasks/Introduction

本文使用的tasks版本为:7.18.3

obsidian tasks允许在obsidian仓库中的任何地方创建任务,并且在任何地方查询任务、且更新修改等,其查询非常强大。

在查询中,需要将查询语句添加到```tasks中,例如:

​```tasks
查询语句
​```

如果需要添加注释,则直接在前面添加#即可,例如:

​```tasks
# 查询未被结束的任务
not done 
​```

前置说明

  • 在看本篇文章的时候,默认已经学会了tasks基本操作,包括创建任务、结束任务、修改任务等等。
  • 需要理解duestartscheduled等名词含义等。

  • 需要知道关于bool运算符含义,比如ANDORNOT等。

简单查询

查询所有任务

直接使用tasks便可以查看所有任务,包括已经结束、取消了的。

​```tasks

​```

查询未结束的任务

在查询语句中,加上not done,即可查询未被结束、取消的任务。

​```tasks
not done
​```

查询已经结束的任务

在查询语句中,加上done,即可查询已经结束,或者被取消的任务。

​```tasks
done
​```

查询被取消的任务

在查询语句中,加上has cancelled date,该语句的含义是cancelled必须有值,该操作即可查询被取消的任务。

​```tasks
# 查询已经被取消的任务
has cancelled date
​```

以树类型展示任务

如果有树类型任务,可加上show tree来展示层次关系。

例如,有树类型任务如下:

- [ ] 总任务
    - 任务1
        - [ ] 步骤1 🛫 2025-03-23 📅 2025-03-25 
        - [ ] 步骤2
        - [ ] 步骤3
    - 任务2
        - [ ] 步骤1
        - [ ] 步骤2
        - [ ] 步骤3

使用show tree可以展示类型,比如:

​```tasks
show tree
​```

其结果为:

image-20250316220331810

关于时间的查询

tasks中,关于时间的查询,其中关键字如下:

  • in x

将匹配x日期。

  • before x

将匹配x日期之间的所有日期。

  • after x

将匹配x日期之后的所有日期。

  • in or before x

将匹配x日期之前的所有日期,包括x

  • in or after x

将匹配x日期之后的所有日期,包括x

看起来确实很难理解,但是我将其做成了一张表,如下:

image-20250316225510508

其中:

  • 其中in 2025-03-10只能匹配到一个任务。

  • before 2025-03-10可以匹配到2025-03-10 之前的所有任务,但是不包含2025-03-10

  • after 2025-03-10可以匹配到2025-03-10之后的所有任务,但是不包含2025-03-10

  • in or before 2025-03-10可以匹配到2025-03-10 之前的所有任务,包含2025-03-10

  • in or after 2025-03-10可以匹配到2025-03-10之后的所有任务,包含2025-03-10

tasks也有自己相对日期的词,如下:

  • today: 今天
  • tomorrow: 明天
  • yesterday: 昨天
  • -15 days:15天前
  • +15 days:15天后
  • next week:下周一
  • last week:上周一
  • this week:本周一

有了上述铺垫,查询起来就简单多了。

查询本周内没有完成的任务

直接查询下周一之前,但是不包含下周一即可,查询语句:

​```tasks
not done
starts before next week 
​```

该查询语句会查询到开始时间start为下周一之前的所有任务,包括过去的任务,比如今天是2025-03-10,恰好2025-03-09也有任务且状态没有完成,那么也会被查询出来。

查询今天之前没有完成的任务

查询语句如下:

​```tasks
not done
starts before today
​```

该查询语句会查询开始时间在今天之前(不包含今天)为完成的任务。

你还可以这样写:

​```tasks
not done
starts before +0 day
​```

查询本周内完成的任务

​```tasks
done
(starts before next week) AND (starts in or after this week)
​```

该查询语句是一条组合语句:

  • done: 表示已经完成了的任务

  • (starts before next week) AND (starts in or after last week)

表示开始时间在下周一之前和和本周一(包含本周一)之后。

查询已经过期且截止日期在7天内的未做的任务

​```tasks
not done
(starts before +0 days) AND (due before +7 days)
​```

该查询语句和上述类似,这里不解释了。

查询所有 start 在过去 1 个月但 due 在未来 1 个月,prioritymediumhigh,且 tags 只能包含 #work#study,不能包含 #personal,同时 scheduled 不为空的任务

​```tasks
not done
(starts after last 1 month) AND (due before next 1 month) AND ((priority is medium) OR (priority is high)) AND ((tags include #work) OR (tags include #study)) AND (has scheduled date) AND (tags do not include #personal)
​```
  • starts after last 1 month :开始时间在上个月之后。
  • due before next 1 month: 截止时间在下一个之前。
  • (priority is medium) OR (priority is high) : 优先级为medium或者为high
  • (tags include #work) OR (tags include #study)tags#work或者是#study
  • has scheduled datescheduled必须有值。
  • tags do not include #personaltags不包含#personal

总结

最近在使用tasks,实在是太方便了,随时随地都可以创建任务,然后查询过程中,都会被收集起来,只是新建看板查询任务列表过于繁琐,需要自己编写查询语句,不过在短暂的学习之后,使用起来非常得心应手。




使用 obsidian tasks 进行简单查询

https://wangli2025.github.io/2025/03/19/obsidian_tasks_01.html

本站均为原创文章,采用 CC BY-NC-ND 4.0 协议。转载请注明出处,不得用于商业用途。

Comments