嗨,我正在处理Oracle存储过程,在该过程中我减去两个日期,并返回类似于+00 hh:mm:ss.ff格式的Timespan。现在我只想在存储过程或asp.net应用程序中访问hh:mm:ss格式。当我试图返回时间跨度时,这是我减去后得到的结果,我找不到读取它的方法,因为它不是日期时间。我想从数据库端或前端端以HH:MM:SS格式显示时间跨度。我尝试使用以下方法。
1)TO_DATE( TO_CHAR(((MAX(COMPLETED_DATE)-MAX(REQUEST_DATE))*24),'YYYY-MON-DD HH24:MI:SS'),'YYYY-MON-DD HH24:MI:SS')
以便稍后我可以从中提取hh:mm:ss,但这是抛出错误
2) TO_CHAR(((MAX(S.COMPLETED_DATE)-MAX(S.REQUEST_DATE))*24))
它以+00 hh:mm:ss.ff格式返回时间,我无法从此提取hh:mm:ss
两个日期的差异不是DateTime
,而是TimeSpan
。你不应该用字符串来表达这一点。
您应该能够返回:
MAX(S.COMPLETED_DATE)-MAX(S.REQUEST_DATE)
结果应该是C#中的TimeSpan
类型。然后,您可以使用自定义TimeSpan格式字符串以您想要的任何格式输出。
如果出于某种原因,这不起作用,可以考虑从Oracle中分别返回这两个日期,然后在C#代码中减去它们。