您好我正在处理Oracle存储过程,其中我正在减去两个日期并返回Timespan,如+00 hh:mm:ss.ff格式,现在我只想访问HH:MM:SS格式化在存储过程或asp.net应用程序中。当我尝试返回时间跨度,因为它是减法后我得到的结果,我找不到一种方法来阅读它,因为它不是日期时间。我希望从数据库端或前端端显示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
答案 0 :(得分:1)
两个日期的差异不是DateTime
,而是TimeSpan
。你不应该使用字符串来传达它。
你应该能够返回:
MAX(S.COMPLETED_DATE)-MAX(S.REQUEST_DATE)
结果应该是C#中的TimeSpan
类型。然后,您可以使用custom TimeSpan format string输出您想要的任何格式。
如果由于某些原因不起作用,请考虑将这两个日期与Oracle分开,然后在C#代码中减去它们。