flink sql 13位bigint转换为datetime且ss为00,如1684816542000转换为yyyy-MM-dd HH:mm:00
时间: 2023-11-27 22:51:57 浏览: 96
可以使用 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将时间戳字段转换为带00:00:00格式
你可以使用 Flink SQL 中的 `DATE_FORMAT` 函数将时间戳字段转换为带00:00:00格式。具体的语法如下:
```sql
SELECT DATE_FORMAT(TO_TIMESTAMP('2021-09-27 14:23:45'), 'yyyy-MM-dd 00:00:00') AS result;
```
其中,第一个参数是要转换的时间戳字段,这里使用了 `TO_TIMESTAMP('2021-09-27 14:23:45')`;第二个参数是要转换成的格式,这里使用了 `'yyyy-MM-dd 00:00:00'`,即将小时、分钟和秒都设置为00。
执行上述 SQL 语句后,将会得到一个新的字段,它的值为 `'2021-09-27 00:00:00'`,即将原来的时间戳字段转换为了带00:00:00格式。
阅读全文