我使用以下方法获取此字符串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)
答案 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;
}