跟随SQL命令
select TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))) from table1
产生以下格式的结果:+000000000 00:03:01.954000。
是否可以在to_char函数中输入特殊格式以获取
格式的结果:+00 00:00:00.000?
最佳答案
我意识到这一点都不聪明,也不是您要查找的特殊格式的字符串,但是鉴于输出是固定长度的,因此此答案确实有效:
SELECT SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 1, 1)
|| SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 9, 2)
|| ' '
|| SUBSTR(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00'))), 12, 12)
FROM table1;
它也只是舍入小数秒而不是四舍五入,但是我从您的示例中假设它们无论如何都只是零。
这是一个更大的尴尬,但我无法抗拒:
SELECT SUBSTR(REPLACE(TO_CHAR(NVL(arg1 - arg2, TO_DSINTERVAL('0 00:00:00')))
, '0000000', '')
, 1, 16)
FROM table1;
关于sql - to_char的格式间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/970249/