Oracle SYSDATE 输入数据类型
Posted
技术标签:
【中文标题】Oracle SYSDATE 输入数据类型【英文标题】:Oracle SYSDATE input data type 【发布时间】:2012-04-09 09:53:43 【问题描述】:从客户端我需要将 SYSDATE 参数传递给 PL/SQL。在服务器中,它需要转换为日期,为此我使用 TO_DATE(in_timestamp, 'DD-MON-YYYY HH24:MI:SS'); in_timestamp 的数据类型应该是什么?
【问题讨论】:
:如果您将SYSDATE
传递给in_timestamp
,则数据类型将是DATE
类型。转换后是否返回相同的变量?
我不会从过程中返回任何值。
:然后去date
,正如Erkan Haspulat
在他的回答中提到的那样
您是指 SYSDATE,oracle 伪列,还是只是系统生成的日期?
在查找数据时以 in_timestamp 命名可能会造成混淆。人们可能会认为您要的是timestamp
,而不是date
。
【参考方案1】:
SYSDATE
本身就是一个date
,看起来目标字段也是一个date
(因为你使用了TO_DATE()
)。因此,您实际上不需要在这里进行转换。
只需传递SYSDATE
并在您的PL/SQL 块中使用它,这意味着in_timestamp
应该是一个日期。
【讨论】:
【参考方案2】:就 TO_DATE 而言,您可以使用 CHAR、VARCHAR 或 VARCHAR2(推荐),基本上它应该是 String 类型,如以下示例所示:-
to_date('2003/07/09', 'yyyy/mm/dd') would return a date value of July 9, 2003.
to_date('070903', 'MMDDYY') would return a date value of July 9, 2003.
to_date('20020315', 'yyyymmdd') would return a date value of Mar 15, 2002.
您可以在this link 找到更多与 TO_DATE 相关的信息,
编辑
*“但是,如果您传递 sysdate,则不需要再次使用 TO_DATE,因为它已经是一个 Date 值......”*正如 @Gaurav 所提到的,因此 dataType in_timestamp 应该是 DATE..
【讨论】:
:如果他正在传递 sysdate,那么为什么建议他将其存储在 varchar* 中?,以上是关于Oracle SYSDATE 输入数据类型的主要内容,如果未能解决你的问题,请参考以下文章