type
Post
status
Published
date
Jun 21, 2026 21:24
slug
summary
tags
小橘子
Notion
category
Notion
icon
password
comment
 

Notion 函数

属性

  • 属性是指数据库每一列的属性种类,包含公式
  • 公式即是函数
  • 公式几乎支持所有属性类型。
  • 公式类型与属性类型不同
属性类型
例子
公式类型
Title主题
prop(“Title”)prop(“Title”).length()
Text文本
Text文本
prop(“Text”)prop(“Text”).length()
Text文本
Select单选
prop(“Priority”) == “High”
Text文本
Multi-Select多选
prop(“Tags”).length()prop(“Tags”).includes(“Finance”)
Text (list)文本(列表)
Checkbox复选框
prop(“Checkbox”)not prop(“Checkbox”)
Boolean布尔值,返回True or Flase
Email,URL,Phone Number电子邮件,网址,电话
!empty(prop(“Phone”))!empty(prop(“Email”))link(“Call”, “tel:” + prop(“Phone”))
Text文本
Unique ID唯一标识ID
prop("Task ID").split("-").first() ← Prefixprop("Task ID").split("-").last() ← ID
Text文本
Created By,Edited By创建者,编辑者
prop(“Created By”).name()prop(“Created By”).email()
Person人员
Person人员
prop(“Person”)prop(“Person”).at(0).name()prop(“Person”).map(current.email())
Person (list)人员(列表)
Date,Created Time,Last Edited Time日期,创建日期,上次编辑时间
prop(“Due Date”) > now()dateBetween(prop(“Birthday”), now(), “days”)
Date日期
Number数字
prop(“Number”) / 2pi() * prop(“Radius”) ^ 2
Number数字
Relation关联关系
prop(“Tasks”).length()prop(“Tasks”).filter(current.prop(“Status”) !== “Done”)
Page (list)页面(列表)
Rollup汇总
prop(“Purchases”).length()prop(“Average cost”) * 12
Number, date, or list of any type. Depends on rollup configuration.数字,日期,或者任何类型的列表。具体取决于汇总的配置

内置函数

  • 内置函数是语言中内置的特定符号和值,用于帮助制定计算
内置函数
例子
函数运算类型
+,-,*,%
2 * pi()"hello" + "world"
数学运算符
true,false
truefalse
布尔值
==,>,>=,<,<=
123 == 123 = true"Notion" == "Motion" = false
比较运算符
and,or,not
and:true and falsetrue && falseand(true, false)or:true or false!true
逻辑运算符
?:
X ? Y : Z is equivalent to if(X, Y, Z)
三元运算符

函数

  • Notion函数支持以下功能
函数名称
描述
例子
if
如果条件为真,则返回第一个值;否则,返回第二个值。
if(true, 1, 2) = 1if(false, 1, 2) = 2, prop("Checked") == true ? "Complete" : "Incomplete"
ifs
返回与第一个真条件对应的值。这可以作为多个嵌套 if() 语句的替代方案。
ifs(true, 1, true, 2, 3) = 1ifs(false, 1, false, 2, 3) = 3
empty
如果值为空,则返回 true。0、“”和 [] 都被视为空值。
empty(0) = trueempty([]) = true
length
返回文本或列表值的长度。
length("hello") = 5length([1, 2, 3]) = 3
substring
返回从起始索引(包含)到结束索引(可选,不包含)的文本子字符串。
substring("Notion", 0, 3) = "Not"substring("Notion", 3) = "ion"
contains
如果搜索字符串存在于值中,则返回 true。
contains("Notion", "ot") = true
test
如果值与正则表达式匹配,则返回 true,否则返回 false。
test("Notion", "Not") = truetest("Notion", "\\d") = false
match
返回所有与正则表达式匹配的项,以列表形式呈现。
match("Notion Notion", "Not") = ["Not", "Not"]match("Notion 123 Notion 456", "\\d+") = ["123", "456"]
replace
将正则表达式的第一个匹配项替换为替换值。
replace("Notion Notion", "N", "M") = "Motion Notion"
replaceAll
将正则表达式的所有匹配项替换为替换值。
replaceAll("Notion Notion", "N", "M") = "Motion Motion"replaceAll("Notion 123", "\\d", "") = "Notion"
lower
将文本转换为小写。
lower("NOTION") = "notion"
upper
将文本转换为大写。
upper("notion") = "NOTION"
repeat
将文本重复指定次数。
repeat("0", 4) = "0000"repeat("~=", 10) = "~=~=~=~=~=~=~=~=~=~="
link
根据标签文本和 URL 创建超链接。
link("Notion", "https://notion.so") = “Notion”
style
为文本添加样式和颜色。有效的格式样式包括:粗体"b""u"下划线、"i"斜体、"c"代码或"s"删除线。有效颜色包括:"gray"黑色"brown""orange"白色、黑色…"yellow"``"green"``"blue"``"purple"``"pink"``"red"``"_background"
style("Notion", "b", "u")= "``**Notion**``"style("Notion", "blue", "gray_background")
unityle
移除文本的格式样式。如果未指定样式,则移除所有样式。
unstyle("Text")unstyle("Text", "b")
format
返回格式化为文本的值。
format(1234) = "1234"format(now()) = "August 30, 2023 17:55"
add
返回两个数的和。
add(5, 10) = 155 + 10 = 15
subtract
返回两个数的差。
subtract(5, 10) = -55 - 10 = -5
multiply
返回两个数的乘积。
multiply(5, 10) = 505 * 10 = 50
mod
返回第一个数对第二个数取模的结果。
mod(5, 10) = 55 % 10 = 5
pow
返回底数的指数幂的结果。
pow(5, 10) = 97656255 ^ 10 = 9765625
divide
返回两个数的商。
divide(5, 10) = 0.55 / 10 = 0.5
min
返回参数个数最少的那个。
min(1, 2, 3) = 1min([1, 2, 3]) = 1
max
返回参数个数最多的那个。
max(1, 2, 3) = 3max([1, 2, 3]) = 3
sum
返回其所有参数的总和。
sum(1, 2, 3) = 6sum([1, 2, 3], 4, 5) = 15
median
返回其参数的中间值。
median(1, 2, 4) = 2median([1, 2, 3], 4) = 2.5
mean
返回其参数的算术平均值。
mean(1, 2, 3) = 2mean([1, 2, 3], 4, 5) = 3
abs
返回该数字的绝对值。
abs(10) = 10abs(-10) = 10
round
返回一个数字四舍五入到最接近的整数后的值。支持一个或两个参数。如果使用两个参数,第一个参数表示数字的值,第二个参数表示要四舍五入到的小数位数。
round(0.4) = 0round(-0.6) = -1round(1.234, 0) = 1round(1.234, 2) = 1.23round(1234, -2) = 1200
ceil
返回大于或等于该数字的最小整数。
ceil(0.4) = 1ceil(-0.6) = 0
floor
返回小于或等于该数字的最大整数。
floor(0.4) = 0floor(-0.6) = -1
sqrt
返回该数的正平方根。
sqrt(4) = 2sqrt(7) = 2.6457513110645907
cbrt
返回该数的立方根。
cbrt(9) = 2.080083823051904cbrt(64) = 4
exp
返回 e^x,其中 x 是参数,e 是欧拉数(2.718…),即自然对数的底数。
exp(1) = 2.718281828459045exp(-1) = 0.36787944117144233
in
返回该数的自然对数。
ln(2.718281828459045) = 1ln(10) = 2.302585092994046
log10
返回该数的以 10 为底的对数。
log10(10) = 1log10(100000) = 5
log2
返回该数的以 2 为底的对数。
log2(4) = 2log2(1024) = 10
sign
如果数字为正数则返回 1,如果数字为负数则返回 -1,如果数字为零则返回 0。
sign(-10) = -1sign(10) = 1
pi
返回圆的周长与其直径之比。
pi() = 3.141592653589793
e
返回自然对数的底数。
e() = 2.718281828459045
toNumber
从文本中解析数字。
toNumber("2") = 2toNumber(now()) = 1693443300000toNumber(true) = 1
now
返回当前日期和时间。
now() = @August 30, 2023 5:55 PM
today
返回不带时间的当前日期。
today() = @April 19, 2024
minute
返回日期的分钟数(0-59)。
minute(parseDate("2023-07-10T17:35Z")) = 35
hour
返回日期的小时数(0-23)。
hour(parseDate("2023-07-10T17:35Z")) = 17
day
返回日期对应的星期几,介于 1(星期一)和 7(星期日)之间。
day(parseDate("2023-07-10T17:35Z")) = 1
date
返回指定日期(1-31)中的日期。
date(parseDate("2023-07-10T17:35Z")) = 10
week
返回日期所在年份的 ISO 周数(1-53)。
week(parseDate("2023-01-02")) = 1
month
返回日期对应的月份(1-12)。
month(parseDate("2023-07-10T17:35Z")) = 7
year
返回日期对应的年份。
year(now()) = 2023
dateAdd
为日期增加时间。单位参数可取值:"years", "quarters", "months", "weeks", "days", "hours", or "minutes".
dateAdd(now(), 1, "days") = @August 31, 2023 5:55 PMdateAdd(now(), 2, "months") = @October 30, 2023 5:55PMdateAdd(now(), 3, "years") = @August 30, 2026 5:55 PM
dateSubtract
从日期中减去指定时间。单位参数可选值为:"years", "quarters", "months", "weeks", "days", "hours", or "minutes".
dateSubtract(now(), 1, "days") = @August 29, 2023 5:55 PMdateSubtract(now(), 2, "months") = @June 30, 2023 5:55 PMdateSubtract(now(), 3, "years") = @August 30, 2020 5:55 PM
dateBetween
返回两个日期的差值。单位参数可选:"years", "quarters", "months", "weeks", "days", "hours", or "minutes".
dateBetween(now(), parseDate("2022-09-07"), "days") = 357dateBetween(parseDate("2030-01-01"), now(), "years") = 6
dateRange
返回由开始日期和结束日期构成的日期范围。
dateRange(prop("Start Date"), prop("End Date")) = @September 7, 2022 → September 7, 2023
dateStart
返回日期范围的起始日期。
dateStart(prop("Date Range")) = @September 7, 2022dateBetween(dateStart(prop("Date Range")), dateEnd(prop("Date Range")), "days") = -365
dateEnd
返回日期范围的结束日期。
dateEnd(prop("Date range")) = @September 7, 2023dateBetween(dateEnd(prop("Date Range")), dateStart(prop("Date Range")), "days") = 365
timestamp
返回当前 Unix 时间戳,表示自 1970 年 1 月 1 日以来经过的毫秒数。
timestamp(now()) = 1693443300000
formTimestamp
返回给定 Unix 时间戳对应的日期。该时间戳表示自 1970 年 1 月 1 日以来经过的毫秒数。注意:返回的日期将不包含秒和毫秒信息。
fromTimestamp(1689024900000) = @July 10, 2023 2:35 PM
formatDate
使用自定义格式字符串格式化日期。格式字符串可以包含以下文本来表示日期的各个部分:"YYYY"年、"MM"月、"DD"日、"h"小时、"mm"分钟。
formatDate(now(), "MMMM D, Y") = "August 30, 2023"formatDate(now(), "MM/DD/YYYY") = "08/30/2023"formatDate(now(), "h:mm A") = "17:55 PM"
formatNumber
“Revenue:” + formatNumber(prop(“Number”), “usd”, 0).style(“green”)
parseDate
返回按照 ISO 8601 标准解析的日期。
parseDate("2022-01-01") = @January 1, 2022parseDate("2022-01-01T00:00Z") = @December 31, 2021 4:00 PM
name
返回人名。
name(prop("Created By"))prop("Pioneers").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"
email
返回某人的电子邮件地址。
email(prop("Created By"))prop("People").map(email(current)).join(", ")
at
返回列表中指定索引处的值。
at([1, 2, 3], 1) = 2
first
返回列表中的第一个元素。
first([1, 2, 3]) = 1
last
返回列表中的最后一个元素。
last([1, 2, 3]) = 3
slice
返回列表中从提供的起始索引(包含)到结束索引(可选,不包含)的所有项目。
slice([1, 2, 3], 1, 2) = [2]slice(["a", "b", "c"], 1) = ["b", "c"]
concat
返回多个列表的连接结果。
concat([1, 2], [3, 4]) = [1, 2, 3, 4]concat(["a", "b"], ["c", "d"]) = ["a", "b", "c", "d"]
sort
返回已排序的列表。
sort([3, 1, 2]) = [1, 2, 3]
reverse
返回反转后的列表。
reverse(["green", "eggs", "ham"]) = ["ham", "eggs", "green"]
join
返回列表中所有值,并在每个值之间插入连接符。
join(["a", "b", "c"], ", ") = "a, b, c"join(["dog", "go"], "") = "doggo"
split
返回通过分隔符分割文本输入而创建的值列表。
split("apple,pear,orange", ",") = ["apple", "pear", "orange"]
unique
返回输入列表中唯一值的列表。
unique([1, 1, 2]) = [1, 2]
includes
如果列表包含指定的值,则返回 true,否则返回 false。
includes(["a", "b", "c"], "b") = trueincludes([1, 2, 3], 4) = false
find
返回列表中第一个满足条件的元素。
find(["a", "b", "c"], current == "b") = "b"find([1, 2, 3], current > 100) = Empty
findindex
返回列表中第一个满足条件的元素的索引。
findIndex(["a", "b", "c"], current == "b") = 1findIndex([1, 2, 3], current > 100) = -1
filter
返回列表中满足条件的值。
filter([1, 2, 3], current > 1) = [2, 3]filter(["a", "b", "c"], current == "a") = ["a"]
some
如果列表中有任何一项满足给定条件,则返回 true,否则返回 false。
some([1, 2, 3], current == 2) = truesome(["a", "b", "c"], current.length > 2) = false
every
如果列表中的每个项目都满足给定的条件,则返回 true,否则返回 false。
every([1, 2, 3], current > 0) = trueevery(["a", "b", "c"], current == "b") = false
map
返回一个列表,其中包含对输入列表中的每个项目调用表达式的结果。
map([1, 2, 3], current + 1) = [2, 3, 4]map([1, 2, 3], current + index) = [1, 3, 5]
flat
将多个列表合并成一个列表。
flat([1, 2, 3]) = [1, 2, 3]flat([[1, 2], [3, 4]]) = [1, 2, 3, 4]
id
返回页面 ID。如果未提供页面 ID,则返回公式所在页面的 ID。
id()id(prop(“Relation”).first())
equal
如果两个值相等,则返回 true;否则返回 false。
equal(1, 1) = true"a" == "b" = false
unequal
如果两个值相等,则返回 false;否则返回 true。
unequal(1, 2) = true"a" != "a" = false
let
给变量赋值,并使用该变量计算表达式的值。
let(person, "Alan", "Hello, " + person + "!") = "Hello, Alan!"let(radius, 4, round(pi() * radius ^ 2)) = 50
lets
给多个变量赋值,并使用这些变量计算表达式的值。
lets(a, "Hello", b, "world", a + " " + b) = "Hello world"lets(base, 3, height, 8, base * height / 2) = 12
trim
删除文本开头和结尾的空白字符。
" notion ".trim() = "notion"
上一篇
notion 小部件
下一篇
泰语笔记