Oracle将日期和时间插入日期列[存储过程]
我正在使用以下函数。Oracle将日期和时间插入日期列[存储过程]
TO_DATE(TO_CHAR (SYSDATE, 'YYYY-MON-DD HH24:MI:SS'),'yyyy/mm/dd hh24:mi:ss')
其工作的罚款,如果我从喜欢一个简单的查询更新数据: -
set modified_on= TO_DATE(TO_CHAR (SYSDATE, 'YYYY-MON-DD HH24:MI:SS'),'yyyy/mm/dd hh24:mi:ss')
但在存储过程的情况下不能正常工作。
注意: - 在存储过程中,我使用动态查询。立即执行....
没有错误,但只有日期插入或更新没有时间。
现在: - “31-07-2017” 需要这样的东西: - “31-07-2017 HH:MI:SS”
在此先感谢您的帮助。
我可能会很生气,但我确定这个确切的问题已经逐字地发布过了,一切都很疯狂。无论如何..你写道:
TO_DATE(TO_CHAR (SYSDATE, 'YYYY-MON-DD HH24:MI:SS'),'yyyy/mm/dd hh24:mi:ss')
这没有什么意义。你有一个日期,你将它转换成一个看起来像一种格式的字符串,并立即尝试并将其转换回日期,但使用不同的格式。你不能这么做:现在取这个日期并没有任何意义,并且把它转换成一个看起来像2017-JUL-31 18:28:00
的字符串,然后让oracle用斜线和一个数字月来解释它 - 你刚刚准备的字符串有破折号,而不是斜杠。它有一个文本月份名称不是数字月份标识符..它不会工作。甲骨文将遇到第一个-
,并期待\
,它会窒息。
只需使用你必须先从日期,日期:
SYSDATE
即:
set modified_on= SYSDATE
但SYSDATE将仅返回日期,我也需要时间。 –
Oracle文档:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions172.htm - “SYSDATE返回为数据库所在的操作系统设置的当前日期**和时间** “ –
嗨凯斯,查询其工作,但不适用于StoredProcedure。你可以看看下面的例子。 –
在Oracle中,当前日期+时间=系统日期。 select sysdate from dual
会产生2017-07-31 23:18:40
任何人都可以给我任何例子 –
像这样: - 创建或替换程序Uspx_test(x number)是 BEGIN update x set modified_on = sysdate其中xx = x; end Uspx_test; –
如果该列是日期,为什么你使用to_char? –
因为我正在尝试按照前面提到的插入时间和日期。 –
需要类似于: - “31-07-2017 hh:mi:ss” –