作者Avle (慢慢的看清楚了...)
看板java
标题[问题] 想用java抓Date 再存入MySQL
时间Thu Jul 30 21:32:15 2009
我希望能在抓资料进DB的同时,也能一并记下时间
目前遇到的问题是
MySQL吃的Date格式是 YYYY-MM-DD
但我弄出的时间 往往会变成这种格式 'Jul 30 21:30:13 CST 2009)'
也许各位大大有更好的方法 请不吝赐教 <(_ _)>
=============================================================================
main方法中
String driver = "com.mysql.jdbc.Driver";
String urlString =
//帐密跳过
"jdbc:mysql://j.snpy.org/java33?user=?&password=?&+
useUnicode=true&characterEncoding=UTF-8";
Connection conn = null;
Statement smt = null;
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");//
try {
Class.forName(driver);
conn = DriverManager.getConnection(urlString);
smt = conn.createStatement();
String sql = "Insert Into `threeindex` (`date`)
+Values(new java.util.Date())";
// 重点 ^^^^^^^^^^^^^^^^^^^^
smt.execute(sql);
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
=============================================================================
错误讯息
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error
in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'Jul 30 21:30:13 CST 2009)' at line 1
^^^^^^^^^^^^^^^^^^^^^^^^^^
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:741)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:587)
at Threeindex03.main(Threeindex03.java:112)
==============================================================================
--
自古多情空余恨
从来残忍少添伤~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.124.98.199
1F:推 now99:SimpleDateFormat 07/30 22:11
2F:推 qrtt1:为什麽不直接用 MySQL 的 NOW() 函式 07/30 22:57
3F:推 PsMonkey:你的 sql 句子一整个很奇怪阿... 是你贴错吗? 07/31 01:27
4F:推 PsMonkey:btw... 我直接用 new Date().toString() 可以塞.... 07/31 01:30
5F:→ Avle:感谢! String sql = "Insert Into `threeindex` (`date`) 07/31 12:47
6F:→ Avle:+Values((select NOW()))"; 就搞定了! 但这是靠MySQL语法 XD 07/31 12:48
7F:→ adrianshum:请 bind parameter 吧, 不要直接建 SQL... 07/31 15:41
8F:推 qrtt1:靠特定资料库的语法也没什麽不好,轻易地转换DB只是个梦。 08/02 19:03
9F:推 puzi:如果支援多个DB的时候,每个资料库的语法都要写一遍吗Orz 08/04 00:01