【问题标题】:Invalid month error shown in SQLSQL 中显示的月份错误
【发布时间】:2017-03-03 05:14:53
【问题描述】:

我的 SQL 有问题 当我在下面运行查询时,它显示类似 ORA-01843: not a valid month

的错误
> SELECT TO_TIMESTAMP(SYSDATE, 'DD-MM-YYYY HH:MI:SS AM')   INTO
> L_START_TIME   FROM DUAL;

【问题讨论】:

  • 为什么不只是select systimestamp into l_start_time from dual
  • 或者更好l_start_time := systimestamp;
  • 或者,如果您想在输出中使用字符串 - 请改用 to_char
  • 感谢 frd 但在同一个查询中成功在我的另一个系统中运行。我可以更改任何系统时间吗?
  • date 上调用to_timestamp 毫无意义。

标签: sql oracle


【解决方案1】:

永远不要,永远不要在 已经是时间戳或日期的值上调用 to_timestamp()to_date()。如果您需要时间戳,请使用 systimestamp 获取不带时区的时间戳值或使用 current_timestamp 获取带时区的值:

SELECT systimestamp 
  INTO l_start_time
FROM dual;

这里假设l_start_time 被定义为timestamp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 2020-09-05
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多