我正在使用REST API从ServiceNow检索数据,对于某些列,我得到的值类似于“ 2天4小时43分29秒”。
如何将其转换为有用的内容?
STRING_SPLIT
函数似乎无济于事,因为它将拆分值,但是我无法将它们重新组合在一起。
还是有某种方法可以在将其转换为SQL数据库之前在API中对其进行转换?
答案 0 :(得分:0)
好吧,认为我已经弄清楚了如何使用LEFT,SUBSTRING和CHARINDEX的组合来拆分值。
结果是这样的:
,CASE WHEN [calendar_duration] LIKE '%Day%' THEN LEFT(SUBSTRING([calendar_duration],CHARINDEX(' Day', [calendar_duration]) -2, 2),CHARINDEX(' Day', [calendar_duration]) - 1) ELSE '00' END AS [Days]
,CASE WHEN [calendar_duration] LIKE '%Hour%' THEN LEFT(SUBSTRING([calendar_duration],CHARINDEX(' Hour', [calendar_duration]) -2, 2),CHARINDEX(' Hour', [calendar_duration]) - 1) ELSE '00' END AS [Hours]
,CASE WHEN [calendar_duration] LIKE '%Minute%' THEN LEFT(SUBSTRING([calendar_duration],CHARINDEX(' Minute', [calendar_duration]) -2, 2),CHARINDEX(' Minute', [calendar_duration]) - 1) ELSE '00' END AS [Minutes]
,CASE WHEN [calendar_duration] LIKE '%Second' THEN LEFT(SUBSTRING([calendar_duration],CHARINDEX(' ', [calendar_duration]) -2, 2),CHARINDEX(' Seconds', [calendar_duration]) - 1) ELSE '00' END AS [Seconds]
将每个值转换为秒,然后将所有内容加总起来会很容易:-)
我敢肯定有更有效的方法来执行此操作,但是它不会经常使用,因此现在就可以使用。