Notion公式是Database数据库的主要核心工具,你可以通过公式对数据进行统计运算、逻辑判断等操作。Notion公式大全内容涵盖了公式编辑器中的常用术语、操作符和函数等,希望能为所有Notion中文用户提供参考。
本页面旨在提供快速、便捷的Notion公式参考,因此专门为读者提供了快捷目录——右侧边栏是本篇目录,读者可以通过右侧边栏快速找到Notion公式编辑器中的所有术语、参数和函数释义。左侧边栏是关于Notion公式的所有系列文章,你可以通过左侧边栏找到同类文章,例如:
- 如何在Notion数据库中创建属性(Property);
- 如何使用Notion公式编辑器;
- Notion公式语法详解;
- 关于Notion正则表达式,公式报错,数据类型转换的指南等;
Notion公式系列文章还在持续更新中,我后面会再整理所有常用公式,并通过Notion网页进行分享,以便于直接观察公式效果,敬请期待。
Notion公式术语
常用术语
以下几个是使用Notion公式时经常看到的一些术语,在本页只做简单介绍,后续我会开专篇来讲解它们的含义和操作要点。
- Property – 中文直译为“属性”,用来存放特定类型的数据。简单理解:数据库就是一个表格,每一行代表一个对象,那么“属性”就是表格中的列,用来存放对象的某一类信息;
- 举个例子,我要用一张表格来记录我家狗狗——瓜瓜的驱虫日期。那么瓜瓜就是表格中的一行,即一个对象;驱虫日期就是表格中的一列,即对象的“属性”,其中“驱虫日期”是属性名(Property name),“6月20日”是属性值(Property value)。
- 如何引用属性值:在公式编辑器中输入
prop("驱虫日期")
即可完成引用。
- Constant – 常量,即一些用数学符号表示的常用数值。我们熟悉的常量有圆周率Π,自然常数e和布尔值(即true和false,1和0)等;
- Operator – 操作符,比如常见的+、-、*、/等,以及英文形式的add、not和逻辑运算符if等;
- Function – 函数,拿来即用,以精简的代码实现复杂的运算功能。常见的函数有concat(连接字符串)和dateAdd(指定日期加、减时间);
- Arguments – 参数,使用函数进行运算时要使用到的数据,由我们用户输入到函数的括号中。下面是一个传递参数给函数的示例:
// 用Notion公式计算单词‘dog’的字符个数
length(’dog’)
// 结果是3
// 其中length是函数,可用来计算字符串的长度(字符个数);字符串‘dog’是我们传递给函数的参数
//引用属性值
//假设属性“驱虫日期”的值为2023年7月4日
prop("驱虫日期")
//输出结果:July 4, 2023
数据类型
Notion公式可以处理4种数据类型:
- String(字符串)- 即文本类型的数据;
- Number(数值);
- Boolean/Checkbox(布尔值/复选框) – 即0或1,true或false;
- Date(日期);
小贴士
一个Notion函数只能处理单一类型数据,因此在同时处理多种数据类型的情况下,我们可以先使用「数据类型转换函数」把各种类型的数据转换成单一类型,再交由函数处理。
常量
e - 自然常数
数学上我们用符号e
来表示自然常数(即自然对数的底数,定义是 ln(e) = 1
),e的数值约等于2.718281828459
。
公式编辑器示例:
e
// Notion输出结果:2.718281828459
ln(e)
//Notion输出结果:1
pi - 圆周率
pi
即圆周率,书写上我们更习惯使用 π 来表示,数值约为3.1415926
。
公式编辑器示例:
pi
// Notion输出结果:3.14159265359
pi * 10
// 计算直径为10的圆的周长(公式:圆周长 = pi * 直径)
// Notion输出结果:31.415926535898
true - 真
布尔类型只有两种值——真
和假
,一般用于逻辑运算。
在Notion公式编辑器中,常量true
代表布尔值真
。
公式编辑器示例:
true
//Notion输出:true,显示为一个已勾选的复选框
true ? "真" : "假"
//Notion输出:真
true ? "✅":"❌"
// Notion输出:✅
false - 假
在Notion公式编辑器中,常量false
代表布尔值假
。
公式编辑器示例:
false
//Notion输出:false,显示效果是一个没被勾选的复选框
false ? "真" : "假"
//Notion输出:假
false ? "✅":"❌"
// Notion输出:❌
运算符
add ( + ) 加
add
或+
运算符作用:
- 把两个数值相加并返回结果
- 连接两个字符串并返回结果
注:使用函数concat()
也可以用来连接字符串
语法:
① number + number
② string + string
③ add(number, number)
④ add(string, string)
解析:如果2个操作数都为数值(number)类型,则返回两数之和;如果操作数为字符串(string)类型,则返回拼接之后的字符串。
公式编辑器示例:
9 + 2
//Notion输出:11
add(9, 2)
//Notion输出: 11
"9" + "2"
//Notion输出:92
add("Warren", " Buffett")
//Notion输出:Warren Buffett
subtract ( - ) 减
subtract
或 -
运算符作用:把两个数值相减并返回结果。
语法:
① number - number
② subtract(number, number)
解析:前面的数值减去后面的数值,输出结果为两数之差。
公式编辑器示例:
9 - 2
//Notion输出:7
subtract(2, 9)
//Notion输出: -7
multiply( * )乘
multiply
或 *
运算符作用:把两个数值相乘并返回结果。
语法:
① number * number
② multiply(number, number)
公式编辑器示例:
3 * 7
//Notion输出:21
multiply(7, 8)
//Notion输出: 56
divide( / ) 除
divide
或 /
运算符作用:两数相除,并返回计算结果。
语法:
① number / number
② divide(number, number)
公式编辑器示例:
9 / 3
//Notion输出:3
divide(10, -2)
//Notion输出: -5
pow( ^ ) 乘方
pow
或 ^
运算符作用:幂运算,用来计算n个相同的数连乘的结果。
语法:
① num1 ^ num2
② pow(num1, num2)
解析:计算num1的num2次方,并返回计算结果
公式编辑器示例:
5 ^ 3
//Notion输出:125
pow(2, 6)
//Notion输出: 64
mod(%) 取余数
mod
或 %
运算符作用:取模运算,即计算一个数除以另一个数的余数。
语法:
① num1 % num2
② mod(num1, num2)
解析:计算num1除以num2的余数。
公式编辑器示例:
7 % 5
//Notion输出:2
mod(3, 3)
//Notion输出: 0
unaryPlus(+) 一元加
unaryPlus
或 +
运算符作用:一元加号,可以将布尔值或字符串文本转换成数值;
语法:
① + Boolean / String
② unaryPlus( Boolean / String )
公式编辑器示例:
+ true
//Notion输出:1
unaryPlus(false)
//Notion输出:0
+ "666"
//Notion输出: 666
//把字符串"666"转换为了数值666
unaryPlus("666")
//Notion输出: 666
60 + + "40"
//Notion输出: 100
- + "666"
//Notion输出: -666
unaryMinus(-) 一元减
unaryMinus
或 -
运算符作用:一元减号,对一个数值取相反数。
语法:
① - number
② unaryMinus(number)
公式编辑器示例:
-1 + 2
//Notion输出:1
unaryMinus(42)
//Notion输出:-42
40 - (-2)
//Notion输出: 42
if 条件判断
if
运算符作用:判断某一个条件是否为真,如果真则返回一个值,如果假则返回另一个值。
语法:
① if(条件,值1, 值2)
② (条件) ? 值1 : 值2
解析:此处条件应为布尔值,如果条件为true
则返回值1
,条件为false
则返回值2
。
公式编辑器示例:
if( 1 + 1 == 2, true, false)
//Notion输出:true
// if函数的另一种语法
(1 + 1 == 2) ? true : false
//Notion输出:true
// 如果分数不足60则为不合格,分数在60-79则为良好,分数在80及以上则为优秀
if(prop("考试分数") < 60, "不合格",
if(prop("考试分数") < 80, "良好",
"优秀"))
not 非
not
运算符作用:非运算,即对一个布尔值取反值。
语法:
① not Boolean
② not(Boolean)
解析:如果对布尔值true取反值,则结果为false;如果对布尔值false取反值,则结果为true。
公式编辑器示例:
not true
//Notion输出: false
not(false)
//Notion输出: true
not(1 + 1 == 2)
//Notion输出: false
not(1 + 1 == 1)
//Notion输出: true
if(not(1 + 1 == 3), true, false)
//Notion输出: true
//公式含义:如果1+1等于3是错的,那么输出true,否则输出false
and 与
and
运算符作用:与运算,如果两个操作数同时为真(true
),则运算结果为真;否则,当两个操作数中的任意一个为假(false
),则运算结果为假。
语法:
① boolean and boolean
② and(boolean, boolean)
公式编辑器示例:
true and false
//Notion输出: false
and(true, true)
//Notion输出: true
(1 + 1 == 2) and (3 + 3 == 6)
//Notion输出: true
if(and(1 + 1 == 2, 2 + 2 == 4), true, false)
//Notion输出: true
//公式含义:如果 1+1等于2 且 2+2等于4,那么输出true,否则输出false
or 或
or
运算符作用:或运算,如果两个操作数同时为假(false
),则运算结果为假;否则,当两个操作数中的任意一个为真(true
),则运算结果为真。
语法:
① boolean or boolean
② or(boolean, boolean)
公式编辑器示例:
true or false
//Notion输出: true
or(false, false)
//Notion输出: false
(1 + 1 == 6) or (3 + 3 == 2)
//Notion输出: false
(1 + 1 == 2) or (3 + 3 == 2)
//Notion输出: true
if(or(1 + 1 == 4, 2 + 2 == 2), true, false)
//Notion输出: false
//公式含义:如果 1+1等于4 或 2+2等于2,那么输出true,否则输出false
equal(==)等于
equal
或 ==
运算符作用:判断操作数是否等于某一个值,如果等于则返回true,否则返回false。
语法:
① value == value
② equal(value, value)
公式编辑器示例:
(3 * 5 == 15)
//Notion输出: true
equal(false, not true)
//Notion输出: true
(1 + 1 == 2) and (3 + 3 == 6)
//Notion输出: true
(1 + 1 == 2) or (3 + 3 == 2)
//Notion输出: true
unequal(! =)不等于
unequal
或 !=
运算符作用:判断操作数是否不等于某一个值,如果不等则返回true
,否则返回false
。
语法:
① value != value
② unequal(value, value)
公式编辑器示例:
(6 * 9 != 42)
//Notion输出: false
(true != not false)
//Notion输出: false
unequal("鸡", "鸭")
//Notion输出: true
larger (>) 大于
larger
或 >
运算符作用:判断一个数是否大于另一个数,如果大于则返回true
,否则返回false
。
语法:
① value > value
② larger(value, value)
解析:此处操作数value
的数据类型可以为数字、字符串、布尔数或日期,注意前后两个操作数的数据类型要相同。
公式编辑器示例:
5 > 3
//Notion输出: true
"123" > "12"
//Notion输出: true
"123" > "13"
//Notion输出: false
//从字符串左侧开始逐位比较,一旦出现左边大于右边,则返回true
larger(true, false)
//Notion输出: true
//布尔值true相当于1,false相当于0
larger(now(), dateSubtract(now(), 1, "days"))
//Notion输出: true
//公式含义:比较日期大小,当前日期 晚于 前一天,因此返回true
smaller (<) 小于
smaller
或 <
运算符作用:判断一个数是否小于另一个数,如果小于则返回true
,否则返回false
。
语法:
① value < value
② smaller(value, value)
解析:此处操作数value
的数据类型可以为数字、字符串、布尔数或日期,注意前后两个操作数的数据类型要相同。
公式编辑器示例:
3 < 5
//Notion输出: true
"12" < "123"
//Notion输出: true
"13" < "123"
//Notion输出: false
//从字符串左侧开始逐位比较,一旦出现左边小于右边,则返回true
smaller(false, true)
//Notion输出: true
//布尔值true相当于1,false相当于0
smaller(dateSubtract(now(), 1, "days"), now())
//Notion输出: true
//公式含义:比较日期大小,前一天 早于 当前日期,因此返回true
largerEq (>=) 大于等于
largerEq
或 > =
运算符作用:判断一个数是否大于或等于另一个数,如果是则返回true
,否则返回false
。
语法:
① value >= value
②
largerEq(value, value)
解析:此处操作数value
的数据类型可以为数字、字符串、布尔数或日期,注意前后两个操作数的数据类型要相同。
公式编辑器示例:
largerEq(5, 4)
//Notion输出: true
5 >= 5
//Notion输出: true
5 >= 6
//Notion输出: false
smallerEq (<=) 小于等于
smallerEq
或 <=
运算符作用:判断一个数是否小于或等于另一个数,如果是则返回true
,否则返回false
。
语法:
① value <= value
②
smallerEq(value, value)
解析:此处操作数value
的数据类型可以为数字、字符串、布尔数或日期,注意前后两个操作数的数据类型要相同。
公式编辑器示例:
10 <= 11
//Notion输出: true
10 <= 10
//Notion输出: true
largerEq(10, 9)
//Notion输出: false
函数
concat - 连接字符串
concat()
函数作用:把2个或多个字符串(文本)连接起来,并返回拼接后的字符串。
语法:
① concat(string, string, ...)
② string + string + ...
解析:在括号中可以放入多个字符串类型的参数,中间用英文逗号隔开。
小贴士
运算符 +
也能起到连接字符串的作用。
"金毛" + "口水大王"
//Notion输出: "金毛口水大王"
concat("金毛", "就是", "小鸡毛")
//Notion输出: "金毛就是小鸡毛"
//使用"\n"可以在字符串内实现换行
concat("拉布拉多\n", "拉的多不多\n", "取决于货拉拉拉不拉\n", "拉布拉多\n")
//Notion输出:
//拉布拉多
//拉的多不多
//取决于货拉拉拉不拉
//拉布拉多
join - 使用连接符拼接字符串
join()函数作用:将指定字符作为连接符,把多个字符串连接起来,并返回连接后的字符串。
语法: join( string, string, ...)
解析:函数会把第一个参数作为连接符,把后面的参数全部连接起来。注意所有参数的数据类型都为字符串,参数数量没有限定。
示例:
join("-", "a", "b", "c")
//Notion输出: "a-b-c"
join("·", "沃伦", "巴菲特")
//Notion输出: "沃伦·巴菲特"
//使用"\n"可以在字符串内实现换行
join("\n", "拉布拉多", "拉的多不多", "取决于货拉拉拉不拉", "拉布拉多")
//Notion输出:
//拉布拉多
//拉的多不多
//取决于货拉拉拉不拉
//拉布拉多
slice - 提取字符串片段
slice()
函数作用:对字符串进行切片,即从指定字符串中裁切出一个片段,可以指定裁切的起点和终点。
语法:
①slice( string, number)
②
slice( string, number, number)
解析:如果只有两个参数,则仅指定裁切起点,不指定终点;若有三个参数,则既指定起点,也指定终点。
示例:
slice("Hello world", 1, 5)
//Notion输出: "ello"
slice("notion", 3)
//Notion输出: "ion"
slice("小狗爱吃鱼", 1)
//Notion输出: "狗爱吃鱼"
slice("小狗爱吃鱼", 0, 2)
//Notion输出: "小狗"
length - 计算字符串长度
length()
函数作用:计算字符串长度,即字符的个数。
语法: length( string )
示例:
length("Hello world")
//Notion输出: 11
//字符串内的空格也会计算长度
length("货拉拉拉不拉拉布拉多取决于拉布拉多拉的多不多")
//Notion输出: 22
format - 转换为字符串
format()
函数作用:把其他类型的数据转换为字符串(文本)类型。
语法: format(value)
解析:该函数可接受的数据类型包括数值(number)、布尔值(boolean)、日期(date)和文本(string)。
示例:
format(42)
//Notion输出: "42"
format(true)
//Notion输出: "true"
format(now())
//Notion输出: "June 26, 2023 11:56 PM"
toNumber - 转换为数值
toNumber()
函数作用:把其他类型的数据转换为数值类型。
语法: toNumber(value)
解析:该函数可接受的数据类型包括文本(string)、布尔值(boolean)、日期(date)和数值(number)。
示例:
toNumber("42")
//Notion输出: 42
toNumber(false)
//Notion输出: 0
toNumber(true)
//Notion输出: 1
toNumber(now())
//Notion输出: 1687795380000
//把日期转换为时间戳
contains - 判断是否包含
contains()
函数作用:判断一个字符串是否包含另一个字符串,如果包含则返回true
,否则返回false
。
语法: contains(string1, string2)
解析:如果在第一个参数string1
内,可以找到第二个参数string2
,即前者包含后者,则函数返回true
,否则返回false
。参数必须为字符串类型。
示例:
contains("notion", "ion")
//Notion输出: true
contains("金毛寻回猎犬", "犬")
//Notion输出: true
contains("犬", "金毛寻回猎犬")
//Notion输出: false
replace - 替换文本
replace()
函数作用:在字符串中搜寻特定文本片段(可以是正则表达式),将匹配到的第一个文本片段替换成任意文本。
语法: replace(number/ boolean / text, text1, text2)
解析:在第一个参数中搜寻文本片段text1
,将匹配到的第一个文本片段替换成text2
。第一个参数可以是文本、布尔或数值类型。
示例:
replace("1-2-3", "-", "!")
//Notion输出: "1!2-3"
replace("Labrador Dogs", "labrador", "拉布拉多")
//Notion输出:"Labrador Dogs"
//函数对字母大小写敏感,因此这里无法完成匹配和替换
replace("Labrador Dogs", "[Ll]abrador", "拉布拉多")
//Notion输出:"拉布拉多 Dogs"
//正则表达式[Ll]表示可以匹配大写L或小写l
replace("拉布拉多", "拉", "瓜")
//Notion输出: "瓜布拉多"
replace("拉布拉多拉", "拉$", "瓜")
//Notion输出: "拉布拉多瓜"
//正则表达式中,$可匹配行尾,因此这里匹配到行尾的“拉”,并替换为“瓜”
replace("拉布拉多", "拉(?!(.*拉.*))", "瓜")
//Notion输出: "拉布瓜多"
//通过正则表达式,匹配最后一个“拉”字,并替换为“瓜”
replaceAll - 替换所有文本
replaceAll()
函数作用:在字符串中搜寻特定文本片段(可以是正则表达式),将匹配到的所有文本片段替换成任意文本。
语法: replaceAll(number/ boolean / text, text1, text2)
解析:在第一个参数中搜寻文本片段text1
,将匹配到的所有文本片段替换成text2
。第一个参数可以是文本、布尔或数值类型。
示例:
replaceAll("1-2-3", "-", "!")
//Notion输出: "1!2!3"
replaceAll("Labrador labrador Dogs", "labrador", "拉布拉多")
//Notion输出:"Labrador 拉布拉多 Dogs"
//函数对字母大小写敏感,因此第一个Labrador无法被匹配
replaceAll("Labrador labrador Dogs", "[Ll]abrador", "拉布拉多")
//Notion输出:"拉布拉多 拉布拉多 Dogs"
//正则表达式[Ll]表示可以匹配大写L或小写l
replaceAll("拉布拉多", "拉", "瓜")
//Notion输出: "瓜布瓜多"
test - 判断是否包含(正则)
test()
函数作用:判断一个字符串是否包含特定文本片段(可以是正则表达式),如果包含则返回true
,否则返回false
。
语法: test(text / number / boolean, text1)
解析:在第一个参数中搜寻文本片段或正则表达式text1
,如果匹配成功则返回true
,否则返回false
。第一个参数可以是文本、布尔或数值类型。
示例:
test("1-2-3", "-")
//Notion输出: true
test("Labrador Dogs", "labrador")
//Notion输出: false
//Notion公式对大小写敏感,由于前后参数大小写不一致,此处匹配不成功;
test("Labrador Dogs", "[Ll]abrador")
//Notion输出: true
//正则表达式中[Ll]表示可以匹配大写L或小写l
empty - 判断是否为空
empty()
函数作用:判断一个参数是否为空值,如果是则返回true
,否则返回false
。
语法: empty(number / text / boolean / date)
解析:只需输入1个参数,参数可以是文本、布尔、数值或日期类型。
示例:
empty("")
//Notion输出: true
empty(" ")
//Notion输出: false
//空格不是空值
empty(false)
//Notion输出: true
//布尔值false判定为空值
empty(true)
//Notion输出: false
empty(0)
//Notion输出: true
//数值0判定为空值
empty(1)
//Notion输出: false
abs - 绝对值
abs()
函数作用:取绝对值。
语法: abs(number)
解析:需输入1个参数,参数为数值类型。
示例:
abs(-3)
//Notion输出: 3
abs(3)
//Notion输出: 3
cbrt - 立方根
cbrt()
函数作用:求一个数的立方根。
语法: cbrt(number)
示例:
cbrt(8)
//Notion输出: 2
cbrt(-27)
//Notion输出: -3
ceil - 向上取整
ceil()
函数作用:向上取整,即求不小于给定数值的最小整数。
语法: ceil(number)
解析:需输入1个参数,参数为数值类型。
示例:
ceil(4.2)
//Notion输出: 5
ceil(4)
//Notion输出: 4
exp - 指数函数(e的幂次方)
exp()
函数作用:计算自然常数 e
的幂次方,e
是一个常数约为2.718281828459
。
语法: exp(number)
解析:返回 e
的 number
次方;需输入1个参数,参数为数值类型。
示例:
exp(1)
e ^ 1
//Notion输出: 2.718281828459045
exp(0)
e ^ 0
//Notion输出: 1
ln(exp(10)) //Notion输出: 10
exp(ln(10)) //Notion输出: 10
floor - 向下取整
floor()
函数作用:向下取整,即求不大于给定数值的最大整数。
语法: floor(number)
解析:需输入1个参数,参数为数值类型。
示例:
floor(2.8)
//Notion输出: 2
floor(2)
//Notion输出: 2
ln - 自然对数函数
ln()
函数作用:求自然对数,即求一个数以自然常数e
为底数的对数。
语法: ln(number)
解析:需输入1个参数,参数为数值类型,且数值应大于0。
示例:
ln(e)
//Notion输出: 1
ln(1)
//Notion输出: 0
log10 - 对数函数
log10()
函数作用:求一个数以10为底数的对数。
语法: log10(number)
解析:需输入1个参数,参数为数值类型,且数值应大于0。
示例:
log10(10)
//Notion输出: 1
log10(1)
//Notion输出: 0
log2 - 对数函数
log2()
函数作用:求一个数以2为底数的对数。
语法: log2(number)
解析:需输入1个参数,参数为数值类型,且数值应大于0。
示例:
log2(2)
//Notion输出: 1
log2(1)
//Notion输出: 0
max - 求最大值
max()
函数作用:在给定的一组数值中,求其中的最大值。
语法: max(number...)
解析:需输入0或多个参数,参数为数值类型。
示例:
max(5, 2, 9, 3)
//Notion输出: 9
max(toNumber("888"), 666, 777)
//Notion输出: 888
min - 求最小值
min()
函数作用:在给定的一组数值中,求其中的最小值。
语法:min(number...)
解析:需输入0或多个参数,参数为数值类型。
示例:
min(4, 1, 5, 3)
//Notion输出: 1
min(toNumber("666"), 888, 777)
//Notion输出: 666
round - 四舍五入取整
round()
函数作用:对给定的一个数按四舍五入的原则,取距离最近的整数。
语法:round(number)
解析:需输入1个参数,参数为数值类型。
示例:
round(4.4)
//Notion输出: 4
round(4.5)
//Notion输出: 5
round(-1.5)
//Notion输出: -1
round(1.666 * 100) / 100
//Notion输出: 1.67
//四舍五入保留两位小数
sign - 符号函数
sign()
函数作用:符号函数,判断数值的正负符号,如果数值为正则返回1
,数值为负返回-1
,数值为零返回0
。
语法:sign(number)
解析:需输入1个参数,参数为数值类型。
示例:
sign(4)
//Notion输出: 1
sign(-9)
//Notion输出: -1
sign(0)
//Notion输出: 0
sqrt - 平方根
sqrt()
函数作用:求一个数的平方根。
语法:sqrt(number)
解析:需输入1个参数,参数为数值类型,且数值应大于等于0
。
示例:
sqrt(144)
//Notion输出: 12
sqrt(81)
//Notion输出: 9
start - 起始日期
start()
函数作用:给定一个时间段,返回该时间段的起始日期。
语法:start(date)
解析:需输入1个参数,参数为日期类型。
示例:
//假设当前"Date"属性值为 June 1, 2023 → June 2, 2023
start(prop("Date"))
//Notion输出: June 1, 2023
end - 结束日期
end()
函数作用:给定一个时间段,返回该时间段的结束日期。
语法:end(date)
解析:需输入1个参数,参数为日期类型。
示例:
//假设当前"Date"属性值为 June 1, 2023 → June 2, 2023
end(prop("Date"))
//Notion输出: June 2, 2023
now - 当前时间
now()
函数作用:从系统获取所在时区的当前日期和时间。
语法:now()
解析:该函数不需要任何参数。
示例:
now()
//Notion输出: June 27, 2023 8:03 PM (本教程的测试时点)
timestamp - 日期转换时间戳
timestamp()
函数作用:将日期数据转换为Unix时间戳,时间戳是一个整数数值。
语法:timestamp(date)
解析:需输入1个参数,参数为日期类型。
示例:
//测试时间:2023-06-27 20:07:00
timestamp(now())
//Notion输出: 1687867620000
fromTimestamp - 时间戳转换日期
fromTimestamp()
函数作用:将时间戳转换为日期数据。
语法:fromTimestamp(number)
解析:需输入1个参数,参数为数值类型;参数应为Unix毫秒时间戳。
示例:
fromTimestamp(2000000000000)
//Notion输出: May 18, 2033 11:33 AM
//取决于所在时区
dateAdd - 添加时间间隔
dateAdd()
函数作用:在基准日期上添加指定的时间间隔。
语法:dateAdd(date, number, text)
解析:需输入3个参数;第1个参数是日期类型数据,代表基准日期;第2个参数是数值类型,代表时间间隔长度;第3个参数是字符串(文本)类型数据,代表时间间隔单位。
可选的时间单位包括:
"years"
– 年"quarters"
– 季"months"
– 月"weeks"
– 周"days"
– 日"hours"
– 时"minutes"
– 分"seconds"
– 秒"milliseconds"
– 毫秒
示例:
//测试时点:June 27, 2023 8:23 PM
dateAdd(now(),10,"days")
//Notion输出: July 7, 2023 8:23 PM
dateAdd(now(), 10, "hours")
//Notion输出: June 28, 2023 6:23 AM
dataSubtract - 减去时间间隔
dataSubtract()
函数作用:在基准日期上减去指定的时间间隔。
语法:dateSubtract(date, number, text)
解析:需输入3个参数;第1个参数是日期类型数据,代表基准日期;第2个参数是数值类型,代表时间间隔长度;第3个参数是字符串(文本)类型数据,代表时间间隔单位。
可选的时间单位包括:
"years"
– 年"quarters"
– 季"months"
– 月"weeks"
– 周"days"
– 日"hours"
– 时"minutes"
– 分"seconds"
– 秒"milliseconds"
– 毫秒
示例:
//测试时点:June 27, 2023 8:23 PM
dateSubtract(now(),10,"days")
//Notion输出: June 17, 2023 8:23 PM
dateSubtract(now(), 10, "hours")
//Notion输出: June 27, 2023 10:23 AM
dateBetween - 计算时间间隔
dateBetween()
函数作用:计算两个日期之间的时间间隔,计算结果是一个数值(number
)。
语法:dateBetween(date, date2, text)
解析:需输入3个参数;第1和第2个参数为日期类型,代表2个时间点;第3个参数是字符串(文本)类型数据,代表时间间隔单位。
可选的时间单位包括:
"years"
– 年"quarters"
– 季"months"
– 月"weeks"
– 周"days"
– 日"hours"
– 时"minutes"
– 分"seconds"
– 秒"milliseconds"
– 毫秒
示例:
//假设
//属性Date1是June 27, 2023 8:23 PM
//属性Date2是June 28, 2023 8:23 PM
dateBetween(prop('Date2'), prop('Date1'), "days")
//Notion输出: 1
dateBetween(now(), dateAdd(now(),1,"days"), "days")
//Notion输出: -1
fomatDate - 格式化日期
fomatDate()
函数作用:将日期数据转换为特定格式的日期。
语法:formatDate(date, text)
解析:需输入2个参数;第1个参数为日期类型,代表要格式化的日期;和第2个参数为字符串类型,用来指定目标日期格式。
示例:
formatDate(now(), "MMMM D YYYY, HH:mm")
//Notion输出: June 27 2023, 23:21
formatDate(now(), "YYYY/MM/DD, HH:mm")
//Notion输出: 2023/06/27, 23:21
formatDate(now(), "MM/DD/YYYY, HH:mm")
//Notion输出: 06/27/2023, 23:21
formatDate(now(), "HH:mm A")
//Notion输出: 23:21 PM
minute - 分钟数
minute()
函数作用:获取日期值中的分钟数,并以数值形式返回。
语法:minute(date)
解析:需输入1个参数,参数为日期类型。
示例:
//测试时点:June 27, 2023 8:23 PM
minute(now())
//Notion输出: 23
//假设Date属性值为June 27, 2023 8:50 PM
minute(prop("Date"))
//Notion输出: 50
hour - 小时数
hour()
函数作用:获取日期值中的小时数,并以数值形式返回。
语法:hour(date)
解析:需输入1个参数,参数为日期类型。
示例:
//测试时点:June 27, 2023 8:23 PM
hour(now())
//Notion输出: 20
//假设Date属性值为June 27, 2023 11:50 PM
hour(prop("Date"))
//Notion输出: 23
day - 星期几
day()
函数作用:返回某个日期对应于一周中的第几天,并以数值的形式返回。
语法:day(date)
解析:需输入1个参数,参数为日期类型。
函数返回整数0-6
,与一周中的第几天相对应:
0
– 周日1
– 周一2
– 周二3
– 周三4
– 周四5
– 周五6
– 周六
示例:
//测试时点:June 27, 2023 11:50 PM,周二
day(now())
//Notion输出: 2
//假设Date属性值为June 28, 2023 11:50 PM
day(prop("Date"))
//Notion输出: 3
date - 月中第几天
date()
函数作用:返回某个日期对应于一个月中的第几天,并以数值的形式返回。
语法:date(date)
解析:需输入1个参数,参数为日期类型。函数返回整数1-31
,与一个月中的第几天相对应。
示例:
//测试时点:June 27, 2023 11:50 PM,周二
date(now())
//Notion输出: 27
//假设Date属性值为June 28, 2023 11:50 PM
date(prop("Date"))
//Notion输出: 28
month - 月份数
month()
函数作用:返回某个日期对应于一年中的第几个月,并以数值的形式返回。
语法:month(date)
解析:需输入1个参数,参数为日期类型。函数返回整数0-11
,与一个月中的第几天相对应。
0
– 1月1
– 2月2
– 3月3
– 4月- …
11
– 12月
示例:
//测试时点:June 27, 2023 11:50 PM,周二
month(now())
//Notion输出: 5
//假设Date属性值为 July 27, 2023 11:50 PM
month(prop("Date"))
//Notion输出: 6
year - 年份
year()
函数作用:返回某个日期对应的年份,并以数值的形式返回。
语法:year(date)
解析:需输入1个参数,参数为日期类型。函数返回整数结果,与年份相对应。
示例:
//测试时点:June 27, 2023 11:50 PM,周二
year(now())
//Notion输出: 2023
//假设Date属性值为 June 27, 2024 11:50 PM,周二
year(prop("Date"))
//Notion输出: 2024
id - 唯一识别码
id()
函数作用:获取数据库中当前所在行的页面id(page ID
)。
语法:id()
解析:Notion Database数据库中的每一行都是一个Notion页面(page
),每个页面都有对应的id
,此函数的作用就是获取此id
。函数无需参数,返回的结果为字符串类型。
示例:
//页面URL:
id()
//Notion输出: "9a4a2d1258c9476789b9ea5160647fb3"
9 thoughts on “Notion公式大全:终极指南(2024更新)”
subtract 的代码示例弄成 add 的了。
已修改,感谢指正!
5 ^ 3
//Notion输出:25
pow(2, 6)
//Notion输出: 64
5的3次方应该是125
已修改,感谢指正!
有没有办法从另一个表取得数据? 比如: 我想从A表的水果列, 从B表中查找对应水果的价格?
好问题!这个是可以实现的,需要用到relation和rollup属性,可以参阅这一篇文章:Notion Rollup和Relation使用教程。
缺少了style函数的介绍
你好,有没有办法统计出某一个值在整列中重复的次数?类似于excel中的countif, 比如一列中出现了重复输入我想标记出来。谢谢!
目前暂时没有类似countif的公式,不过可以迂回实现countif的效果。
例如想要统计[名字]列下,“小明”出现的次数,可以创建新的Fomula类型的列[是否叫小明],然后输入公式
prop("名字") == "小明"
并点击确认。这样做的目的是,若[名字]为小明,则该列[是否叫小明]的状态则为Checked。然后在[是否叫小明]列下方,计算Checked的个数即可。
过程可能有点绕,有机会我会新开一篇文章来演示。