flink sql 13位bigint转换为datetime且ss为00,如1684816542000转换为yyyy-MM-dd HH:mm:00
时间: 2023-11-27 16:51:57 浏览: 124
可以使用 Flink SQL 中的 `FROM_UNIXTIME` 函数将 13 位 Unix 时间戳转换为日期时间格式,然后使用 `DATE_FORMAT` 函数将秒数部分设置为 00。
具体的 SQL 语句如下:
```
SELECT DATE_FORMAT(FROM_UNIXTIME(1684816542000/1000), 'yyyy-MM-dd HH:mm:00')
```
其中,`1684816542000/1000` 将 13 位 Unix 时间戳转换为 10 位 Unix 时间戳(秒数),然后使用 `FROM_UNIXTIME` 函数将其转换为日期时间格式。最后,使用 `DATE_FORMAT` 函数将时间的秒数部分设置为 00。
执行上述 SQL 语句,输出结果为 `2023-11-20 07:42:00`。
相关问题
Flink sql将13位的字符串,如’1684408519691’转换为datatime类型’yyyy-MM-dd HH:mm:ss’且ss位为00
可以使用Flink SQL内置的DATE_FORMAT函数来实现这个转换。
示例代码如下:
```
SELECT DATE_FORMAT(FROM_UNIXTIME(SUBSTRING('1684408519691', 1, 10)), 'yyyy-MM-dd HH:mm:00') AS dt;
```
解释说明:
1. 使用SUBSTRING函数获取字符串前10位,即13位时间戳的秒数部分。
2. 使用FROM_UNIXTIME函数将秒数转换为标准的日期时间格式。
3. 使用DATE_FORMAT函数将日期时间格式化为指定的格式,其中ss位设置为00。
执行以上SQL语句,输出结果为:
```
+---------------------+
| dt |
+---------------------+
| 2023-10-16 16:08:00 |
+---------------------+
```
flink sql 时间转换
在 Flink SQL 中,你可以使用内置的函数来进行时间转换。以下是一些常见的时间转换函数:
1. TO_TIMESTAMP:将字符串转换为时间戳。示例:TO_TIMESTAMP('2022-01-01 10:00:00', 'yyyy-MM-dd HH:mm:ss')。
2. TO_DATE:将字符串转换为日期。示例:TO_DATE('2022-01-01', 'yyyy-MM-dd')。
3. DATE_FORMAT:将日期或时间戳格式化为指定格式的字符串。示例:DATE_FORMAT(TO_TIMESTAMP('2022-01-01 10:00:00', 'yyyy-MM-dd HH:mm:ss'), 'yyyy-MM-dd')。
4. UNIX_TIMESTAMP:将日期或时间戳转换为 Unix 时间戳(毫秒)。示例:UNIX_TIMESTAMP('2022-01-01 10:00:00')。
这些函数可以在 Flink SQL 的查询中使用,根据你的具体需求选择适合的函数进行时间转换操作。希望能对你有所帮助!如果有任何问题,请随时提问。
阅读全文
相关推荐
















