Tableau函数系列【1】 - 日期相关函数
使用Tableau的时候经常用到一系列时间处理的函数,以下分功能和应用场景做了一个小结整理,官方已经提供了日期函数的所有用法,参见:
help.tableau.com/current/pro/desktop/zh-cn/f
前言 使用Tableau的时候经常用到一系列时间处理的函数,以下分功能和应用场景做了一个小结整理,官方已经提供了日期函数的所有用法,参见: help.tableau.com/current/pro/desktop/zh-cn/functions_functions_date.htm 我整理了一份导图,已经按照功能分类了,其他的就等你来填空了,WX对话框回复「日期」获取。 1 基本日期获取 常用的年、月、日直接对应的函数为: Year() Month() Day() 以上三个函数通过创建计算字段来完成的话,默认是计算字段 - 数字格式,我们可以根据需要调整为日期/维度格式。 Year函数我用的比较多些,虽然Tableau可以智能识别我们的日期并赋予年份的计算,但有year计算后,在创建筛选器时会更为直接。month、day甚至week、quarter函数的计算同理。 2 日期截取 日期截取使用场景非常之多,常用的除了以上可以直接计算的年、月、日、周,还可以计算星期、year-to-date(本年第几天)等等。 官网提供了datepart函数支持返回的所有值: 重点需要了解的是dayofyear即year-to-date,返回当前日期是本年度的第几天,如2021/8/30为本年度的第242天。 Tableau最近的几个版本中提供了iso日历的计算方案,iso日期与我们常规的日期最大的差异是iso日期的第一周永远从周一开始。 返回到2021年1月日历,我们可以看到,如果按照公历显示,21年第一周为1/1-1/3,而iso-week是从第一个周一开始计算的,即2021/1/4开始为第一个iso-week。 Datetrunc比较重要的应用是按照指定精度截断日期,返回值仍然为日期形式,如我们把本例的Date按照季度截断: 按季度截断默认返回季度第一天日期(按月截断,默认返回每月首日): 在某些需要按特定方式显示其实日期状态下,可以尝试用Datetrunc函数。 Datename返回值为字符串,同样为月份状态下,datename会以字符形式返回: 了解清楚这三个函数返回值的对应格式,对日期的各种计算是非常有帮助的。 3 日期转换 数据来源或者系统输出的限制,日期会以字符串的形态显示。首先可以通过isdate判断给定字符串是否为有效日期,但一般只有比较标准的字符串这个函数可以判断。 我们创建两个相近的字符串来说明: 测试结果截然相反: 这种情况可以尝试dateparse函数解析。 此处应注意,字符串代码需要与字符测试提供的字符串完全匹配。 在本例第三个行字段发生了错误,mm被解析为分钟,所以整个日期解析发生了错误,使用的时候应注意。 4 日期运算 日期运算主要为dateadd,datediff一个是时间增加/减少变换,一个是求时间间隔。 Dateadd是向日期添加增量,interval支持负增量。 datediff是求取两个指定日期之间的间距,支持间距年、月、日、周等显示: 我们以日期解析后值和当前系统日期求取时间差为例: 设置两个datediff计算,时间差_年,时间差_天,分别返回对应时间间距。 注意,datediff返回的为时间间距,可理解为起始日期不参与计算,实际应用中,需要考虑当前日期是否参与计算,若参与计算可将datediff函数后+1。 5 其他运算 提示自己原始数据起始日期,或者做时期比较时经常用到max和min来计算。运算本质没有难度,这里给一个小tips: {max(date)}返回整个数据日期的最大值,等价于fixed计算,具体示例如下: 即使对应至每个季度Mssq日期函数,{min(订单日期)}与{max(订单日期)}仍保持不变。 以上。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |