当前位置: 首页 > news >正文

datawind可视化查询-日期函数

飞书文档学习链接:https://www.volcengine.com/docs/4726/47275

1 常用函数快速入门

日期函数用于作时间格式转换、时间处理、获取指定日期等。

1.1 将文本转换为时间或日期

格式:

  • toDate(xxx)和 to_date(xxx),将 yyyymmdd 或 yyyy-mm-dd 样式的字符串字段转换成日期格式
  • toDateTime(xxx),将 yyyy-mm-dd hh:mm:ss 样式的字符串转换成时间格式
  • toDateOrNull(xxx) 和 toDateTimeOrNull(xxx),功能与上述 1 和 2 相同,适用于字段中存在脏数据的情况,会将脏数据转换成空值

示例:

字段A

toDate(字段A)

toDateTime(字段A)

2020/12/21

2020/12/21

2020/12/21 0:00

20201221

2020/12/21

2020/12/21 0:00

2020/12/21 18:00

2020/12/21

2020/12/21 18:00

字段A为字符串类型,toDate(字段A)和 toDateTime(字段A)为时间格式

1.2 时间与时间戳相互转换

格式:将时间或文本类型的时间转换成时间戳 toUnixTimestamp(xxx),即将 yyyy-mm-dd hh:mm:ss 转换成时间戳

示例:

字段A

toUnixTimestamp(字段A)

扩展:toDateTime(toUnixTimestamp(字段A)+28800)

2020/12/21 18:00

1608544800

2020/12/22 2:00

扩展:对转换后的时间戳,加上 8 小时对应的时间戳差值 28800,完成从 UTC+0 到 UTC+8 的转换,然后再通过 toDateTime 函数转换成可读性更强的时间格式。

1.3 返回当前日期

格式:now(),生成一个随系统实时时间变化的动态参数

示例:现在时间是 2020-12-21 18:00:00,写下 now()作为一个字段,则这个字段当前值为 2020-12-21 18:00:00,一小时后为 2020-12-21 19:00:00

1.4 返回本周周一的日期

格式:toMonday(xx),对日期字段向前取到本周一对应的日期

示例:

字段A

toMonday(字段A)

2020/12/22

2020/12/21

2 功能详解

函数名称

函数格式

用途

示例

toDateTime

toDateTime(x)

将字符型时间日期转化为时间日期型

toDateTime('2018-12-24 10:10:00')

toStartOfFiveMinute

toStartOfFiveMinute(x)

截取时间日期到最近的 5 的倍数分钟(之后归零),返回日期

toStartOfFiveMinute(toDateTime('2018-12-11 11:12:13')) 返回 2018-12-11 11:10:00

now

now()

生成当前时间日期

now( ) 返回 2018-12-13 10:10:12

toStartOfFifteenMinutes

toStartOfFifteenMinutes(x)

截取时间日期到最近的 15 的倍数分钟(之后归零),返回日期

toStartOfFifteenMinute(toDateTime('2018-12-11 11:12:13')) 返回 2018-12-11 11:00:00

toStartOfInterval

toStartOfInterval(time_or_data, INTERVAL x unit [, time_zone])

这是名为 toStartOf*的所有函数的通用函数。例如,toStartOfInterval(t,INTERVAL 1 year)返回与 toStartOfYear(t)相同的结果,toStartOfInterval(t,INTERVAL 1 month)返回与 toStartOfMonth(t)相同的结果, toStartOfInterval(t,INTERVAL 1 day)返回与 toStartOfDay(t)相同的结果, toStartOfInterval(t,INTERVAL 15 minute)返回与 toStartOfFifteenMinutes(t)相同的结果。

toStartOfInterval(toDateTime('2019-10-10 09:09:20'),INTERVAL 1 year) 返回 2019-01-01

toIntervalDay

toIntervalDay(x)

日期转化为时间戳,天级别

toIntervalDay(toDateTime('2019-08-12 11:12:13')) 返回 1565579533

toIntervalMinute

toIntervalMinute(x)

日期转化为时间戳,分钟级别

toIntervalMinute(toDateTime('2019-08-14 11:12:13')) 返回 1565579533

toIntervalHour

toIntervalHour(x)

日期转化为时间戳,小时级别

toIntervalHour(toDateTime('2019-08-14 11:12:13')) 返回 1565579533

toMonday

toMonday(x)

将 Date 或 DateTime 向前取整到本周的星期一。 返回 Date 类型。

toMonday(toDateTime('2019-08-14 11:12:13')) 返回 2019-08-12

toStartOfHour

toStartOfHour(x)

将DateTime向前取整到当前小时的开始。

toStartOfHour(toDateTime('2018-12-11 11:12:13')) 返回 11

today

today( )

生成今天的日期

today( ) 返回 2018-12-13

toHour

toHour(x)

取时间日期的小时

toHour(toDateTime('2018-12-11 11:12:13')) 返回 11

toStartOfTenMinutes

toStartOfTenMinutes(x)

将 DateTime 以十分钟为单位向前取整到最接近的时间点

toStartOfTenMinute(toDateTime('2018-12-11 11:12:13')) 返回 2018-12-11 11:00:00

toStartOfDay

toStartOfMinute(string date time)

将 DateTime 向前取整到当日的开始。

toYear

toYear(string date)

返回日期中的年

toRelativeWeekNum

toRelativeWeekNum(date)

将 Date 或 DateTime 转换为星期数,从过去的某个固定时间点开始。

toMonth

toMonth(string date)

返回日期中的月

toStartOfMinute

toStartOfMinute( )

截取时间日期到分钟(之后归零),返回日期

toStartOfMinute(toDateTime('2018-12-11 11:12:13')) 返回 2018-12-11 11:12:00

toUnixTimestamp

toUnixTimestamp( )

将 DateTime 转换为 unix 时间戳

addDays

addDays(date_time,int)

函数将一段时间间隔添加到 Date/DateTime,然后返回 Date/DateTim

toRelativeYearNum

toRelativeYearNum(date_time)

将 Date 或 DateTime 转换为年份的编号,从过去的某个固定时间点开始

year

year(Date/DateTime/String date)

返回日期中的年

year(toDateTime('2018-12-11 11:12:13'))返回 2018

month

month(Date/DateTime/String date)

返回日期中的月

month(toDateTime('2018-12-11 11:12:13'))返回 12

quarter

quarter(Date/DateTime/String date)

返回日期中的季度数

quarter(toDateTime('2018-12-11 11:12:13'))返回 12

day

day(Date/DateTime/String)

返回 dayOfMonth

day('2019-09-12') 返回 12

last_day

last_day(Date/DateTime/String date)

返回日期所在的月份的最后一天

last_day(toDateTime('2018-12-11 11:12:13'))返回 2018-12-31

next_day

next_day(Date/DateTime/String date, string day_of_week)

返回日期中的下一个星期day_of_week

next_day(toDate('2015-01-14'), 'TU') 返回 2015-01-20

dateDiff

dateDiff(Date/DateTime date1, Date/DateTime date2 [, String timezone]); dateDiff(String unit, Date/DateTime date1, Date/DateTime date2 [, String timezone])

返回两个日期的差值

dateDiff(now(), yesterday())返回 -1

date_sub

date_sub (string/Date/DateTime startdate, int days)

返回start_time 前 days 天的日期/时间

date_sub('2019-09-08', 1) 返回'2019-09-07'

date_add

date_add (string/Date/DateTime startdate, int days)

返回start_time 后 days 天的日期/时间

date_add('2019-09-08', 1) 返回'2019-09-09'

from_unixtime

from_unixtime(Date/DateTime/UInt32 date, String parttern[, String timezone])

将日期或时间戳转换为 pattern 形式的字符串

from_unixtime(toDateTime('2019-09-09 09:00:00'), 'time: %F %T', 'Asia/Shanghai') 返回'time: 2019-09-09 09:00:00'

to_date,toDate

to_date(String/UInt16 date)

将字符串/自 1970-01-01 起的第 date 天转换为日期类型

toDate('20190909') 返回'2019-09-09'

date_format

date_format(Date/DateTime/String, String pattern)

将日期按指定格式输出

date_format('2019-09-09', 'yyyy') 返回 '2019'

unix_timestamp

unix_timestamp(Date/DateTime/String)

将日期转换为 timestamp

unix_timestamp(toDateTime('2019-09-09 09:00:00'), 'time: %F %T', 'Asia/Shanghai') 返回'time: 2019-09-09 09:00:00'

toWeek

toWeek(date[,mode])

返回日期所在的周, 范围[0, 53]

toWeek(toDate('2019-12-06'), 3) 返回 49

toDayOfWeek

todayofweek(date)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于XxlCrawler的Java执行JS渲染方式实战-以获取商飞C919飞行照片为例
  • 【学习笔记】Day 4 - Day 5
  • Javascript常见算法(二)【学习】
  • 常见中间件漏洞复现之【Jboss】!
  • React18+Vite+Eectron从入门到实战系列之一环境安装篇
  • 为Python添加模块搜索路径
  • 【ROS2】rmf_demo使用
  • IO-Link通信笔记(十七)——可任意MCU平台移植的面向对象程序设计的IO-Link从站协议栈与接口代码生成和监控上位机与便携式通信主站
  • 前缀和专题
  • 什么是云边协同?
  • 考研数一|极限的计算(笔记)
  • OGG转MP3音频格式转换:6种免费音频转换器推荐
  • Linux网络协议.之 tcp,udp,socket网络编程(三).之多进程实现并发demon
  • 通过java.netHttpURLConnection类实现java发送http请求
  • 【拓扑排序topsort】——启动!!!
  • 【Leetcode】101. 对称二叉树
  • ➹使用webpack配置多页面应用(MPA)
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2018一半小结一波
  • gops —— Go 程序诊断分析工具
  • js中的正则表达式入门
  • Node 版本管理
  • nodejs调试方法
  • Puppeteer:浏览器控制器
  • Redis学习笔记 - pipline(流水线、管道)
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用权重正则化较少模型过拟合
  • 数组的操作
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • (+4)2.2UML建模图
  • (26)4.7 字符函数和字符串函数
  • (35)远程识别(又称无人机识别)(二)
  • (C++17) std算法之执行策略 execution
  • (C语言)球球大作战
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)程序员疫苗:代码注入
  • ***通过什么方式***网吧
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • **CI中自动类加载的用法总结
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .net framework profiles /.net framework 配置
  • .Net 代码性能 - (1)
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net开发时的诡异问题,button的onclick事件无效
  • 。Net下Windows服务程序开发疑惑
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...