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;

FlinkSql函数_第1张图片       

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

FlinkSql函数_第2张图片

你可能感兴趣的:(flink,sql,大数据)