【发布时间】:2012-11-08 11:27:31
【问题描述】:
有点卡在这里。假设我运行以下 SQL 查询:
select to_char(sysdate, 'DD/MON/YY') || ' 15:32:00' from dual;
结果给了我这个:
08/NOV/12 15:32:00
现在我想获取该结果并在 to_date 函数中使用它(原因很长,但我会在一秒钟内详细介绍):
select to_date((to_char(sysdate, 'DD/MON/YY') || ' 15:32:00'), 'DD/MON/YY HH24:MI:SS') from dual;
我希望结果与前一个相同,但事实并非如此。相反,它给了我这个:
08/NOV/12
问题是这样的:有没有办法可以在 to_date 中使用 to_char(sysdate, 'DD/MON/YY') 和 HH24:MI:SS 的任何组合?
可能有也可能没有任何额外用途的其他细节: 我需要这样做的原因是因为我得到了一个查询,其中有一个带有 SLA 时间的表。格式只是 HH24:MI 中的时间,但它不是 DATETIME 类型(我怀疑它是 VARCHAR,但不能确定,因为它可能是某种我无法剖析的视图或函数。部分原因是我由于我的数据库用户,我不知道如何进行,部分原因是我没有必要的访问权限。
编辑:再次阅读上述内容时,我意识到我遗漏了一些额外的细节(尽管我认为这与我的问题无关): 我想取今天的日期(DD/MON/YY),将其与 HH:MI 的 SLA 时间结合起来,将其与 :SS 的 ':00' 结合起来,将整个日期转换为日期,然后在结果令人憎恶和返回的每一行的完成时间。如果完成时间比我的组合和转换豪华更大/更新/晚,则返回特定的内容,而不是返回类似“一切正常”的内容。不确定这是否有意义,但总而言之,我想得到一些可以用来与另一种 DATETIME 类型进行比较的东西,所以我认为我还需要以某种方式将 SLA 时间转换为 DATETIME 类型。
对此的任何帮助将不胜感激。
【问题讨论】:
-
你用什么客户端来运行这个?它应该可以工作,demo,
-
嗨,Ben,使用 Oracle SQL Developer 对其进行测试。我很确定它应该可以正常工作,但由于某些奇怪的原因,它似乎只是在 to_char(sysdate, 'DD/MON/YY') 之后扔掉了一点。编辑:SQL Developer v. 2.1
-
sql developer NLS 设置位于工具>首选项>数据库>NLS 参数下。请参阅下面的答案
标签: sql oracle to-date to-char