首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算Teradata中的时间差

计算Teradata中的时间差
EN

Stack Overflow用户
提问于 2018-03-07 13:38:10
回答 1查看 4.1K关注 0票数 0

我想取两个日期字段的差值,但两者都是varchar字段。

SyntaxEditor代码片段:

代码语言:javascript
运行
复制
start_time- 2018-03-02 06:31:22

end_time -  2018-03-02 06:33:32.478000  

我希望整数中的结果为2,以min表示,它应该是一个整数。

结果:- 2

如果有人能帮我办案,那就太好了。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 13:56:35

您可以使用像cast((cast(end_time as timestamp) - cast(start_time as timestamp) minute(4)) as int)这样的间隔计算,但是它会在> 9999分钟内失败。

这是SQL,用于不受限制地计算时间戳的时间戳差:

代码语言:javascript
运行
复制
REPLACE FUNCTION TimeStamp_Diff_Seconds
(
   ts1 TIMESTAMP(6)
  ,ts2 TIMESTAMP(6)
)
RETURNS DECIMAL(18,6)
LANGUAGE SQL
CONTAINS SQL
RETURNS NULL ON NULL INPUT
DETERMINISTIC
SQL SECURITY DEFINER
COLLATION INVOKER
INLINE TYPE 1
RETURN
(CAST((CAST(ts2 AS DATE)- CAST(ts1 AS DATE)) AS DECIMAL(18,6)) * 60*60*24)
      + ((EXTRACT(  HOUR FROM ts2) - EXTRACT(  HOUR FROM ts1)) * 60*60)
      + ((EXTRACT(MINUTE FROM ts2) - EXTRACT(MINUTE FROM ts1)) * 60)
      +  (EXTRACT(SECOND FROM ts2) - EXTRACT(SECOND FROM ts1))
;

如果无法创建UDF,则可以复制源并应用最终的/ 60并将其转换为整数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49153306

复制
相关文章

相似问题

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