首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL clickhouse BD中DateTime64的Substraction DateTime64

SQL clickhouse BD中DateTime64的Substraction DateTime64
EN

Stack Overflow用户
提问于 2022-06-30 12:38:15
回答 1查看 212关注 0票数 1

我试图找出两个表的时间戳之间的时间差(以毫秒为单位)。像这样,

代码语言:javascript
复制
SELECT  value, (table1.time - table2.time)  AS time_delta

但我错了:

代码语言:javascript
复制
llegal types DateTime64(9) and DateTime64(9) of arguments of function minus:

所以我不能在点击室中减去DateTime64。

第二种方法我尝试使用DATEDIFF,但是这个功能受到“秒”的限制,我需要以“毫秒”为单位的值。

这是支持的,但我在diff中得到了零,因为差太低(很少毫秒):

代码语言:javascript
复制
SELECT  value, dateDiff(SECOND  , table1.time, table2.platform_time)  AS time_delta

这是不支持的:

代码语言:javascript
复制
SELECT  value, dateDiff(MILLISECOND  , table1.time, table2.time)  AS time_delta

有什么更好的方法来解决我的问题?

我也试着把值转换成浮动,这很有效,但看起来很奇怪,

代码语言:javascript
复制
SELECT  value, (toFloat64(table1.time) - toFloat64(table2.time))  AS time_delta

结果我得到了这样的想法:

代码语言:javascript
复制
value        time
51167477    -0.10901069641113281
EN

回答 1

Stack Overflow用户

发布于 2022-07-01 19:41:41

@ditrauth尝试转换到Float64,因为您要查找的次秒部分存储为十进制。另外,您想要DateTime64(3)数毫秒,请参阅文档。见下文:

代码语言:javascript
复制
CREATE TABLE dt( 
                start DateTime64(3, 'Asia/Istanbul'),
                end DateTime64(3, 'Asia/Istanbul')
)
ENGINE = MergeTree ORDER BY end

insert into dt values (1546300800123, 1546300800125),
                      (1546300800123, 1546300800133)

SELECT
    start,
    CAST(start, 'Float64'),
    end,
    CAST(end, 'Float64'),
    CAST(end, 'Float64') - CAST(start, 'Float64') AS diff
FROM dt

┌───────────────────start─┬─CAST(start, 'Float64')─┬─────────────────────end─┬─CAST(end, 'Float64')─┬─────────────────diff─┐
│ 2019-01-01 03:00:00.123 │         1546300800.123 │ 2019-01-01 03:00:00.125 │       1546300800.125 │ 0.002000093460083008 │
│ 2019-01-01 03:00:00.123 │         1546300800.123 │ 2019-01-01 03:00:00.133 │       1546300800.133 │ 0.009999990463256836 │
└─────────────────────────┴────────────────────────┴─────────────────────────┴──────────────────────┴──────────────────────┘

2 rows in set. Elapsed: 0.001 sec. 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72815996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档