加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Tableau函数系列【1】 - 日期相关函数

发布时间:2022-11-21 14:02:12 所属栏目:MsSql教程 来源:转载
导读: 前言
使用Tableau的时候经常用到一系列时间处理的函数,以下分功能和应用场景做了一个小结整理,官方已经提供了日期函数的所有用法,参见:
help.tableau.com/current/pro/desktop/zh-cn/f

前言

使用Tableau的时候经常用到一系列时间处理的函数,以下分功能和应用场景做了一个小结整理,官方已经提供了日期函数的所有用法,参见:

help.tableau.com/current/pro/desktop/zh-cn/functions_functions_date.htm

我整理了一份导图,已经按照功能分类了,其他的就等你来填空了,WX对话框回复「日期」获取。

oracle·日期函数_excel日期加减函数_Mssq日期函数

1 基本日期获取

常用的年、月、日直接对应的函数为:

Year()

Month()

Day()

以上三个函数通过创建计算字段来完成的话,默认是计算字段 - 数字格式,我们可以根据需要调整为日期/维度格式。

excel日期加减函数_Mssq日期函数_oracle·日期函数

excel日期加减函数_Mssq日期函数_oracle·日期函数

oracle·日期函数_Mssq日期函数_excel日期加减函数

Year函数我用的比较多些,虽然Tableau可以智能识别我们的日期并赋予年份的计算,但有year计算后,在创建筛选器时会更为直接。month、day甚至week、quarter函数的计算同理。

2 日期截取

日期截取使用场景非常之多,常用的除了以上可以直接计算的年、月、日、周,还可以计算星期、year-to-date(本年第几天)等等。

官网提供了datepart函数支持返回的所有值:

Mssq日期函数_excel日期加减函数_oracle·日期函数

重点需要了解的是dayofyear即year-to-date,返回当前日期是本年度的第几天,如2021/8/30为本年度的第242天。

excel日期加减函数_oracle·日期函数_Mssq日期函数

Tableau最近的几个版本中提供了iso日历的计算方案,iso日期与我们常规的日期最大的差异是iso日期的第一周永远从周一开始。

oracle·日期函数_excel日期加减函数_Mssq日期函数

返回到2021年1月日历,我们可以看到,如果按照公历显示,21年第一周为1/1-1/3,而iso-week是从第一个周一开始计算的,即2021/1/4开始为第一个iso-week。

excel日期加减函数_Mssq日期函数_oracle·日期函数

Datetrunc比较重要的应用是按照指定精度截断日期,返回值仍然为日期形式,如我们把本例的Date按照季度截断:

Mssq日期函数_oracle·日期函数_excel日期加减函数

按季度截断默认返回季度第一天日期(按月截断,默认返回每月首日):

Mssq日期函数_excel日期加减函数_oracle·日期函数

在某些需要按特定方式显示其实日期状态下,可以尝试用Datetrunc函数。

Datename返回值为字符串,同样为月份状态下,datename会以字符形式返回:

oracle·日期函数_excel日期加减函数_Mssq日期函数

excel日期加减函数_Mssq日期函数_oracle·日期函数

了解清楚这三个函数返回值的对应格式,对日期的各种计算是非常有帮助的。

3 日期转换

数据来源或者系统输出的限制,日期会以字符串的形态显示。首先可以通过isdate判断给定字符串是否为有效日期,但一般只有比较标准的字符串这个函数可以判断。

我们创建两个相近的字符串来说明:

Mssq日期函数_oracle·日期函数_excel日期加减函数

excel日期加减函数_Mssq日期函数_oracle·日期函数

测试结果截然相反:

这种情况可以尝试dateparse函数解析。

excel日期加减函数_Mssq日期函数_oracle·日期函数

此处应注意,字符串代码需要与字符测试提供的字符串完全匹配。

oracle·日期函数_Mssq日期函数_excel日期加减函数

在本例第三个行字段发生了错误,mm被解析为分钟,所以整个日期解析发生了错误,使用的时候应注意。

4 日期运算

日期运算主要为dateadd,datediff一个是时间增加/减少变换,一个是求时间间隔。

Dateadd是向日期添加增量,interval支持负增量。

excel日期加减函数_oracle·日期函数_Mssq日期函数

excel日期加减函数_oracle·日期函数_Mssq日期函数

datediff是求取两个指定日期之间的间距,支持间距年、月、日、周等显示:

excel日期加减函数_oracle·日期函数_Mssq日期函数

我们以日期解析后值和当前系统日期求取时间差为例:

设置两个datediff计算,时间差_年,时间差_天,分别返回对应时间间距。

注意,datediff返回的为时间间距,可理解为起始日期不参与计算,实际应用中,需要考虑当前日期是否参与计算,若参与计算可将datediff函数后+1。

5 其他运算

提示自己原始数据起始日期,或者做时期比较时经常用到max和min来计算。运算本质没有难度,这里给一个小tips:

{max(date)}返回整个数据日期的最大值,等价于fixed计算,具体示例如下:

Mssq日期函数_excel日期加减函数_oracle·日期函数

Mssq日期函数_oracle·日期函数_excel日期加减函数

即使对应至每个季度Mssq日期函数,{min(订单日期)}与{max(订单日期)}仍保持不变。

以上。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!