Notion公式大全 - 封面

Notion公式大全:终极指南(2024更新)

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+运算符作用:

  1. 把两个数值相加并返回结果
  2. 连接两个字符串并返回结果

注:使用函数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:<https://www.notion.so/9a4a2d1258c9476789b9ea5160647fb3>
id()
//Notion输出: "9a4a2d1258c9476789b9ea5160647fb3"
				
			

9 thoughts on “Notion公式大全:终极指南(2024更新)”

  1. 有没有办法从另一个表取得数据? 比如: 我想从A表的水果列, 从B表中查找对应水果的价格?

  2. 你好,有没有办法统计出某一个值在整列中重复的次数?类似于excel中的countif, 比如一列中出现了重复输入我想标记出来。谢谢!

    1. 目前暂时没有类似countif的公式,不过可以迂回实现countif的效果。

      例如想要统计[名字]列下,“小明”出现的次数,可以创建新的Fomula类型的列[是否叫小明],然后输入公式prop("名字") == "小明"并点击确认。这样做的目的是,若[名字]为小明,则该列[是否叫小明]的状态则为Checked。

      然后在[是否叫小明]列下方,计算Checked的个数即可。

      过程可能有点绕,有机会我会新开一篇文章来演示。

Leave a Comment

Your email address will not be published. Required fields are marked *