【发布时间】:2017-07-13 21:25:52
【问题描述】:
我想在接受日期参数的存储过程中将日期作为参数传递。我的 oracle db 接受的日期格式,例如 10-JUL-17
现在我试过了
SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yy");
Date d = new Date();
String newdate = df.format(d);
System.out.println(newdate);
它打印 13-JUL-17 但由于它是字符串,我的表不会接受这个值。 我如何将其转换为日期数据类型,以便 oracle 接受它。
【问题讨论】:
-
Dates 没有格式。如果您的 Oracle 数据库需要Date对象,则格式无关紧要。也许您的 Oracle 代码有问题,但尚未发布。 -
除了其他人建议的所有转换之外,我会将日期标记为查询参数(即使用
?)并使用 JDBC 驱动程序方法来提供相关的 Java 对象(即 Date , 时间戳等) -
一个
DATEdoes not have a format;它在内部存储为 7 或 8 字节,代表年(2 字节)、月、日、小时、分钟和秒(每个 1 字节)。您使用的用户界面(SQL/Plus、SQL Developer、Toad、Java 等)通常会将格式应用于日期,以便人类可读,但这不是由数据库完成的。 SQL/Plus 和 SQL Developer 使用的格式是NLS_DATE_FORMAT会话参数,该参数存储在数据库中,但任何用户都可以独立更改自己的设置。