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 输入数据类型的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 日期数据类型与 sysdate

Oracle数据类型和内置函数

oracle学习

Oracle--数据增删改

oracle 中 date类型的在数据库怎么存入

oracle之trunc(sysdate)