如何将日期添加到数据库日期字段,但仅限于我之前提取的字段

时间:2018-01-26 14:58:20

标签: java sql oracle

我有一个sql语句,它从数据库中选择一些具有某些条件的表,并将它们放在临时文件中。

在同一个数据库中有一个名为CreationDate的字段,它是空的

    protected int doWork() throws Exception {
    String data = "";

    File tempFile = File.createTempFile("Test",".txt");

    Connection db_cn = currentDataSource.getDbConnection();
    Statement select_stmt =    db_cn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

   ResultSet r_set;

   String str_sql = "select sap, og_id, kz, sap_order from database where status='A' and ver_status is null order by og_id, kz, sap, sap_order";

   r_set = select_stmt.executeQuery(str_sql);

        FileWriter fileWriter = new      FileWriter(tempFile.getCanonicalPath(), true);

        BufferedWriter bw = new BufferedWriter(fileWriter);

   while (r_set.next()) {
       String sap = r_set.getString("SAP");
       String id = r_set.getString("OG_ID");
       String kz = r_set.getString("KZ");
       String order = r_set.getString("SAP_ORDER");

       data = sap + "\t" + id "\t" + kz "\t" + order + "\n";
  bw.write(data);

}

    bw.close();
    fileWriter.close();

    r_set.close();
    select_stmt.close();

   return 0;
    }

代码运行后,它会创建临时文件,其中是我从数据库中选择的数据。

现在我的问题是,我怎么能在创建临时文件之后,将创建日期(日期足够,它不必包含一天中的小时和分钟)添加到我的CreationDate的同一个数据库中字段

问题是我不知道如何开始这个;我的想法是使用java.util.Calendar中的日历来确定日期

        Calendar curr_day = new GregorianCalendar();
       int curr_day_format = curr_day.get(Calendar.YEAR) * 10000 +       (curr_day.get(Calendar.MONTH)+1) * 100 + curr_day.get(Calendar.DAY_OF_MONTH) ;

之后我不知道如何将该日期重新插入到数据库中,仅用于提取到temp txt文件的文件

1 个答案:

答案 0 :(得分:0)

  

String str_sql ="从数据库中选择sap,og_id,kz,sap_order   状态=' A'和ver_status是og_id,kz,sap,sap_order&#34 ;;

的空序

用以下内容替换上面的字符串:

String str_sql = "select sap, og_id, kz, sap_order, cast(sysdatetime() as date) CreateDate from database where status='A' and ver_status is null order by og_id, kz, sap, sap_order";

这不是在创建文件之后但似乎是任意的。这是一个tsql解决方案,而语法是关闭的方法是相同的,编辑您的查询以向PL SQL调用添加日期。