如何在java中获取特定的日期类型

时间:2011-06-02 05:35:23

标签: java oracle jdbc

我使用以下方法获取此字符串to_date('2011/06/02','yyyy/mm/dd')

private static String getOperationDate() {
  Date today= new Date();
  String output;
  SimpleDateFormat formatter;
  String pattern="yyyy/MM/dd";

  formatter = new SimpleDateFormat(pattern, Locale.US);
  output = formatter.format(today);
  String temp="to_date('"+output+"','yyyy/mm/dd')";

  return temp;
}

我如何生成类似to_date('2011-05-27 12:45:56.1',....)的内容,即,除了日期之外,我还可以包含毫秒的时间,然后将其更新到数据库

trutheality引用答案后添加了oracle 插入语句,但这给了我01810. 00000 - "format code appears twice"错误

INSERT INTO CONFIG_INFO(CFG_ID,CFG_NAME,CFG_DESC,CFG_TYPE,FILE_NAME,ABSOLUTE_PATH,EMAIL_ADDRESS,PROJECT_ID,HOSTNAME,CREATE_DATE,UPDATE_DATE,STATE,PRODUCT_ID)
    VALUES (config_seq.NEXTVAL,'Abhishek','as','Production','asdclient1.xml','E:tomcat 5.5bin/../webapps/asd/files/asdclient.xml','a@a.com','ABC','abhinix',to_date('2011/06/02 11:18:38.211','yyyy/MM/dd HH:mm:ss.SSS'),to_date('2011/06/02 11:18:38.211','yyyy/MM/dd HH:mm:ss.SSS'),2,123456)

3 个答案:

答案 0 :(得分:1)

查看docs,找出你的格式字符串应该是什么。

可能类似

String pattern = "yyyy-MM-dd HH:mm:ss.SSS";

但正确的方法是使用OMG Ponies指出的JDBC驱动程序。

答案 1 :(得分:1)

我知道,这是一个旧线程,但我刚遇到了类似的问题,同样的错误信息。已经找到了很好的解决方案,但我认为我的发现值得一提。

对我来说,正在生成的表达式中的基本问题是:

to_date('2011/06/02 11:18:38','yyyy/MM/dd HH:mm:ss')

因为oracle(其中表达式将被评估)的分钟代码不同于java ::'mi'应该使用,因为'mm'保留了几个月(大写和小写并不重要,引用的文档更像是关于java而不是sql) 您得到的错误消息是关于'mm'参数的双重引用,应该避免这种情况。正确的用法是这样的:

to_date('2011/06/02 11:18:38','yyyy/mm/dd hh:mi:ss')

答案 2 :(得分:0)

这样做

 private static String getOperationDate() {
 Date today= new Date();
 String output;
 SimpleDateFormat formatter;
 String pattern="yyyy/MM/dd HH:mm:ss.SSS";

 formatter = new SimpleDateFormat(pattern, Locale.US);
 output = formatter.format(today);
 String temp="to_date('"+output+"','yyyy/mm/dd')";

 return temp;
}