FlinkSql函数

1.字符串转时间类型(TO_TIMESTAMP、TIMESTAMP和UNIX_TIMESTAMP)

select TO_TIMESTAMP('2021-12-03 10:59:45.957') a;
输出: `2021-12-03 10:59:45.957`
select TIMESTAMP '2021-12-03 10:59:45.957' a;
输出: `2021-12-03 10:59:45.957`
select UNIX_TIMESTAMP ('2021-12-03 10:59:45.957') a;
输出:`1638500385`

2.时间类型转字符串(DATE_FORMAT和FROM_UNIXTIME)

select DATE_FORMAT(TO_TIMESTAMP(1596702949000), 'yyyy-MM-dd HH:mm:ss')  a;
输出:2020-08-06 16:35:49
select DATE_FORMAT('2020-08-06 16:35:49', 'yyyy-MM-dd HH:mm:ss', 'yyyy/MM/dd HH:mm:ss') a;
输出:2020/08/06 16:35:49
select FROM_UNIXTIME(1596702949000/1000) a;
输出:2020-08-06 16:35:49

 

3.时间相关计算函数

当参数​为TIMESTMP时,EXTRACT、FLOOR、CEIL和DATE_DIFF等函数输出结果取决于自定义的时区。

-- 1521503999000 2018-03-19T23:59:59+0000, 2018-03-20T07:59:59+0800
 EXTRACT(DAY FROM TO_TIMESTAMP(1521503999000)) 
-- 输出: `20`,表示东八区的20日。

4.当前时间函数

当前时间函数包括LOCALTIMESTAMP()CURRENT_TIMESTAMP()NOW()UNIX_TIMESTAMP()等。

-- 当前时间是2020-08-03 10:59:45 (Asia/Shanghai) 

LOCALTIMESTAMP
-- 输出: `2020-08-03 10:59:45.957`。 

CURRENT_TIMESTAMP
-- 输出: `2020-08-03 10:59:45.957`。 

NOW()
-- 输出: `1596423585`。 

UNIX_TIMESTAMP()
-- 输出: `1596423585`。

 TO_TIMESTAMP( FROM_UNIXTIME(ts) )

FROM_UNIXTIME 是系统内置的时间函数,用来将一个整数(秒数)转换成 “YYYY-MM-DD hh:mm:ss”格式(默认,也可以作为第二个 String 参数传入)的日期时间 字符串(date time string);

然后再用 TO_TIMESTAMP 将其转换成 Timestamp

select FROM_UNIXTIME(1596423585,'yyyy-MM-dd HH:mm:ss') a;

       

select TO_TIMESTAMP(FROM_UNIXTIME(1596423585),'yyyy-MM-dd HH:mm:ss') a;

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

任错错

如果对您有帮助我很开心

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值