0

我试图通过 java 将一个值插入到 Oracle DB 中具有 DATE 数据类型的列之一中。

尝试以下

insertSurveyQuery.append("cast(to_date('12/31/8888', 'MM/dd/yyyy' )as date), ");

Oracle 数据库中的操作:

12 月 31 日至 88 日

但我希望将日期存储为 12/31/8888。

感谢您的任何帮助!

-谢谢!

4

4 回答 4

3

这就是您的 SQL 客户端显示日期的方式。您可以使用以下方法更改此格式:

alter session set NLS_DATE_FORMAT='MM/dd/yyyy';

在内部(在 DB 中)DATE 以数字形式存储,因此它没有任何格式。

于 2013-09-19T11:59:46.833 回答
1

如果您有很多用户访问您的应用程序,那么您可以在 Java 代码中执行以下操作

Date newDate = new SimpleDateFormat("mm/dd/yyyy").parse(myDate);

newDate在插入或更新语句中使用。

通过这样做,您无需更改客户端设置。

于 2013-09-19T12:39:39.857 回答
0

首先,您必须以以下格式创建表

create table t1
(
ename varchar(20),
address varchar(20),
hire_date date,
salary number(5),
dob (we enter as 'dd-mm-yyyy')
);

您必须在其中将日期列作为dd-mm-yyyy类型​​,然后您可以根据需要设置数据。

于 2013-09-19T12:11:24.197 回答
0

Oracle 不支持 DD/MM/YYYY 格式。如果要存储日期时间或时间戳,则必须使用 DD-MM-YYYY 格式。

在直接插入查询中:

  SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy' 'hh:mm:ss a");  
     String date = "01-01-1900 01:00:00 AM";

在程序中:

create or replace 
PROCEDURE insertDATE(
        DATE_PARAM IN VARCHAR2,
         )
IS
 BEGIN 

 INSERT INTO CUSTOMER("DATE")
  VALUES (TO_TIMESTAMP(DATE_PARAM,'DD-MM-YYYY HH:MI:SS AM'));
  COMMIT;
  END;
于 2017-04-13T07:11:18.873 回答