我有一个名为的 csv 文件s3-durations.csv
,它由两个称为持续时间(数字类型)和时间戳(timestamptz)的标题组成。
这就是我将 csv 读入 duckdb 的方法 -
SELECT *
FROM read_csv('s3-durations.csv',
delim = ',',
header = true,
columns = {
'duration': 'numeric',
'timestamp': 'timestamptz'
});
我想在查询结果中添加一个新列,从start_time
数学上讲就是 timestamp - INTERVAL $duration MILLISECONDS
。
我正在尝试使用以下查询来实现这一点 -
SELECT duration, timestamp, timestamp - INTERVAL duration MILLISECONDS
FROM read_csv('s3-durations.csv',
delim = ',',
header = true,
columns = {
'duration': 'numeric',
'timestamp': 'timestamptz'
});
错误是 -
解析器错误:在“毫秒”第 1 行处或附近出现语法错误:...mestamp,时间戳 - INTERVAL 持续时间毫秒 ^
但下面的查询使用一些常量工作正常。
SELECT duration, timestamp, timestamp - INTERVAL 5 MILLISECONDS
FROM read_csv('s3-durations.csv',
delim = ',',
header = true,
columns = {
'duration': 'numeric',
'timestamp': 'timestamptz'
});
如何修复我的 duckdb 查询?