Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Oracle SQL查询中修剪或格式化HH:MM:SS.ms值_Sql_Oracle - Fatal编程技术网

如何在Oracle SQL查询中修剪或格式化HH:MM:SS.ms值

如何在Oracle SQL查询中修剪或格式化HH:MM:SS.ms值,sql,oracle,Sql,Oracle,我在Oracle SQL中有一个查询,显示的结果如下: SQL: select uuid, name, to_char(from_tz(startdate, 'UTC') at time zone 'America/New_York', 'yyyy-mm-dd hh24:mi:ss') as startdate_et, to_char(from_tz(enddate, 'UTC') at time zone 'America/New_York', 'yyyy-mm-dd hh2

我在Oracle SQL中有一个查询,显示的结果如下:

SQL:

select 
  uuid, name, 
  to_char(from_tz(startdate, 'UTC') at time zone 'America/New_York', 'yyyy-mm-dd hh24:mi:ss') as startdate_et, 
  to_char(from_tz(enddate, 'UTC') at time zone 'America/New_York', 'yyyy-mm-dd hh24:mi:ss') as enddate_et, 
  (enddate - startdate) as executiontime
from      
  process 
where 
  name = (select name from jobconfiguration where currentprocessid = 'bGd_AAABNaMAAAFQHvY0UyTa');
输出:

这里的问题是
executiontime
列中的数据。毫秒值太长,而且我想从开头删除
+00
,并将
02.951000
修剪为
02.95
,将
03.284000
修剪为
03.28


请引导。

两个时间戳之间的差异是一个间隔。默认情况下,这包括秒的长分数

为了便于打印,只需使用
到char()


由于差异的默认值是“从天到秒”的间隔,因此您只需要包含这些元素。

两个时间戳的差异已经格式化,并以相同的格式打印出来 +/-天数小时:分钟:秒。毫秒

你为什么不想要+00,是因为它是0天吗? 我想如果日差大于零,你会想要它吗

无论如何,使用substr根据需要格式化输出和使用天数时的用例更容易

比如说 substr(开始时间-结束时间,instr(开始时间-结束时间,)+1,2)将毫秒调整为两位数

情况下,当编号(substr(开始时间-结束时间,1,指令(开始时间-结束时间,))>0,然后substr(开始时间-结束时间,1,指令(开始时间-结束时间,))或“结束” 获取天数


substr(开始时间-结束时间,instr(开始时间-结束时间),)完全删除日期

开始日期和结束日期的数据类型是什么?谢谢
to_char(fenddate - startdate, 'dd hh24:mi:ss') as executiontime