我想将基于秒的列(add_value
)的值添加到时间戳列(start_date
)。
+-----------------------+----------+
| start_date | add_value|
+-----------------------+----------+
|2022-09-05 00:00:01.394| 6.001 |
+-----------------------+----------+
使用下面的代码实现直接值效果很好。
(col('start_date') + expr('INTERVAL 6.001 seconds')).alias("end_date")
但是用列的名称替换它是错误的。
(col('start_date') + expr('INTERVAL add_value seconds')).alias("end_date")
错误:
‘秒’或接近‘秒’的语法错误:额外的输入‘秒’(第1行,位置22)
==SQL==间隔ADD_VALUE秒-^^
我应该如何使用该栏的名称?
2条答案
按热度按时间ar7v8xwq1#
要使用现有列创建间隔,可以串联
'interval' + add_value + 'seconds'
并将结果字符串转换为INTERVAL
类型。然后您可以将其添加到时间戳start_date
:8wtpewkr2#
INTERVAL
不允许使用列中的值。但一种简单的方法是将时间戳转换为double
,然后添加小数秒。将生成的double
值转换为时间戳以获得所需的格式。