我想在 daily note 中汇总每日的任务,目前是想利用任务列表插件生成的自定义属性 plugin-task-list-handleAt,用 sql 匹配年月日是当天的块,尝试了好久都未能成功,论坛也找不到方法,请大佬帮忙写下 sql 代码,谢谢。

我想在 daily note 中汇总每日的任务,目前是想利用任务列表插件生成的自定义属性 plugin-task-list-handleAt,用 sql 匹配年月日是当天的块,尝试了好久都未能成功,论坛也找不到方法,请大佬帮忙写下 sql 代码,谢谢。

大佬,我的块有自定义属性,属性值是 20241201211510 这样的日期格式,我想用 sql 匹配当天的的年月日,比如今天的就是匹配自定义属性值是 20241102 开头的块。明天会自动更新为匹配自定义属性值是 20241103 开头的块。
佬,能细说一下想要达到的应用场景吗?想学习一下。
你试试这个可以吗
.action{ if index . "custom-avs" }
.action{ $id := .id }
.action{ $blocks := queryBlocks "SELECT * FROM blocks WHERE id = '?'" $id }
.action{ $b := first $blocks }
.action{ $match := regexFind "custom-plugin-task-list-handleAt=\"([0-9]+)\"" $b.IAL }
.action{ $value := trimPrefix "custom-plugin-task-list-handleAt=\"" $match }
.action{ $value := trimSuffix "\"" $value }
.action{ $value }
.action{ end }
仅保留年月日版
.action{ if index . "custom-avs" }
.action{ $id := .id }
.action{ $blocks := queryBlocks "SELECT * FROM blocks WHERE id = '?'" $id }
.action{ $b := first $blocks }
.action{ $match := regexFind "custom-plugin-task-list-handleAt=\"([0-9]+)\"" $b.IAL }
.action{ $value := trimPrefix "custom-plugin-task-list-handleAt=\"" $match }
.action{ $value := trimSuffix "\"" $value }
.action{ $year := substr 0 4 $value }
.action{ $month := substr 4 6 $value }
.action{ $day := substr 6 8 $value }
.action{ $year }-.action{ $month }-.action{ $day }
.action{ end }
佬,我刚刚发现 daily note 文档中自定义属性,该值刚好是 20241102 这样的格式,能否把匹配当日日期变成匹配嵌入块所在的 daily note 文档自定义属性值呢,我现在的方案如果查看昨日 daily note 中的嵌入块,显示的也是今天的任务。另外,如果要加一天,也就是显示明天的任务,有办法实现吗,感谢。
用这个试试,粘贴到 SQL 查询文本框中即可
//!js
return (async () => {
// sql查询语句
const sql = `SELECT * FROM blocks WHERE ial LIKE '%custom-plugin-task-list-handleAt="${getCurrDocCustomAttr()}%';`;
// 查询逻辑
const result = await query(sql);
if(result.length > 0) {
return result.map(row=>row.id);
}
return [];
// 获取当前文档的自定义属性值
function getCurrDocCustomAttr() {
const attributes = Array.from(item.parentElement.attributes);
const attr = attributes.find(attr=>attr.name.startsWith('custom-dailynote'));
return attr ? attr.value : '';
}
// 查询数据库
async function query(sql) {
const result = await fetchSyncPost('/api/query/sql', { "stmt": sql });
if (result.code !== 0) {
console.error("查询数据库出错", result.msg);
return [];
}
return result.data;
}
})();
就是我想要的效果,原来这么复杂,我试了几小时放弃了 😂 。感谢大佬。
另外我想再问下:
1 如果要显示明天的,就是今天的加一天要怎么改。
2 查询不到结果可以返回文本“今天没有任务了”,我记得之前自动添加到数据库的那个代码可以返回添加了多少文档,不知道这个可不可以。
查询明天的可以用这个 SQL
SELECT * FROM blocks WHERE ial LIKE '%custom-plugin-task-list-handleAt="' || strftime('%Y%m%d', datetime('now', '+1 days')) || '%';
自定义返回结果有点复杂,建议使用思源自带的"不存在符合条件的内容块"提示即可。
如果有兴趣研究,可参考 建议增加“将文内所有 x 级标题转化为 x 级标题” - wilsons 的回帖
感谢推荐,我也有看过那个模板的介绍,但是那个模板是每日的日程是写在 daily note 里面的吧?我的日程是写在其他笔记里,在 daily note 里面汇总,有关还是不一样。
Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。
汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。
主仓库地址:Hi-Windom/Sillot
文档地址:sillot.db.sc.cn
注意事项:
Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。
宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。
禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。
Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。
Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。
Mobi.css is a lightweight, flexible CSS framework that focus on mobile.
JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。
互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。
深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。
房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。
以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。
HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。
有空闲时间是接外包好呢还是学习好呢?
快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。
uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。
OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。