首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL中减去日期时间

问在SQL中减去日期时间
EN

Stack Overflow用户
提问于 2015-06-18 16:02:05
回答 1查看 638关注 0票数 0

我使用SQL (3.1.06)从DWHP中提取信息。我想从日期时间(dd/mm/yy hh:mm:ss)->datetime_col4 4中减去时间(hh:mm:ss)-> timecol_3,以便显示类似于(10/01/15 01:00:00)-(03:00:00)的内容(09/01/15 22:00:00)。

现在的日期时间没有合并在一起,也没有在上面的格式。(它们是mm/dd/yyyy和hhmmA或hhmmP格式),所以我使用以下语法将其转换为(dd/mm/ the :mm:ss)格式->

to_char(dd/mm/yy as 24:mi:ss‘),'dd/mm/yy 24:mi:ss’),datetime_col4

你能帮忙吗??

EN

回答 1

Stack Overflow用户

发布于 2015-06-24 17:46:36

看起来您的数据是字符串格式的(基于在粗体文本中执行的操作):

to_char(dd/mm/yy as 24:mi:ss‘),'dd/mm/yy 24:mi:ss’),datetime_col4

在oracle中,最好使用本机日期类型中的日期,而不是不断地将它们转换为字符数据类型,因此datetime_col4最好是这样表示的:

代码语言:javascript
复制
to_date(datecol_1 || ' ' || timecol2, 'dd/mm/yy hh24:mi:ss') as datetime_col4

现在假设timecol_3也是has 24:mi:ss表单中的字符串,其中hh24部分在00到23之间,您可以将timecol_3转换为间隔数据类型(最近的数据类型oracle必须转换为纯时间数据类型),如下所示:

代码语言:javascript
复制
cast('0 '||timecol_3 as interval day to second) timecol3

在转换到某个间隔时,需要前面的“0”来表示间隔的日部分,在本例中为零天。

在oracle中,可以将间隔数据类型相互添加和减除,也可以在oracle中从datetime数据类型中添加和减去这些数据类型,以便将最终结果作为日期类型(从基本列开始):

代码语言:javascript
复制
  to_date(datecol_1 || ' ' || timecol2, 'dd/mm/yy hh24:mi:ss')
- cast('0 '||timecol_3 as interval day to second) result

您可以用一个最终的to_char()对其进行包装,以以所需的格式显示结果,或者将NLS_DATE_FORMAT会话设置更改为以所需格式输出所有日期数据类型:

代码语言:javascript
复制
ALTER SESSION NLS_DATE_FORMAT = 'DD/MM/YY HH24:MI:SS';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30920389

复制
相关文章

相似问题

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