java.util.Date,java.util.Timetamp似乎给许多人造成了很大的困惑.在StackOverflow中有很多问题,不幸的是我的问题有点扭曲.
有2个JDBC api.他们应该如何表现?RDBMS之间是否存在任何一致性?
ResultSet.getTimestamp("dateColumn")
ResultSet.getTimestamp("dateColumn", Calendar.getInstance(tz))
Run Code Online (Sandbox Code Playgroud)
如果有人对Sybase有所了解,请您分享一下您的经验?
我有一个JDBC当前日期和时间插入Mysql数据库.
它将当前日期和固定时间提交到Mysql日期类型字段中2012/05/25 00:00:00.日期部分工作非常精细,但时间没有显示任何值.
我正在使用以下代码插入值:
java.util.Date myDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());
PreparedStatement PStmt = con.prepareStatement(Sql query);
PStmt.setDate(1,sqlDate);
Run Code Online (Sandbox Code Playgroud) public static void main(String[] args) {
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
}
Run Code Online (Sandbox Code Playgroud)
我使用这个代码部分并输出如下:
2013/06/14 12:06:11
2013-06-14
Run Code Online (Sandbox Code Playgroud)
我想要有日期和时间数据的输出.方法的参数需要java.sql.Date格式.这就是我必须转换或改变格式的原因sqlDate.我该如何解决?
注意
PreparedStatement insertStmt=null;
insertStmt.setDate(parIndex, java.sql.Date);
Run Code Online (Sandbox Code Playgroud)
这就是我想要java.sql.Date格式的原因
java.util.Date和之间有什么区别java.sql.Date?
为什么我们不能用java.util.Date而不是java.sql.Date?
我正在编写一个程序来为一群用户创建时间表。现在我有一个名为 AddTermineController 的控制器,它应该允许最终用户为另一个用户创建计划,以及计划的数据库连接类。当尝试保存时间表时,我收到此错误:
java.util.Date 无法转换为 java.sql.Date
这是我在其中创建语句的数据库类之外的:
public void addTermin(Termin terminXL) throws ParseException {
try {
PreparedStatement stat = con.prepareStatement(ADD_TERMIN);
stat.setInt(1, terminXL.getUserID().getValue());
stat.setString(2, terminXL.getUserNameT().getValue());
stat.setString(3, terminXL.getKommentar().getValue());
stat.setString(4, terminXL.getKategorie().getValue());
//TODO von und bis in einen Datum umwandeln um es in die Datenbank einzuspeichern
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-DD");
Date datumVon = (Date) simpleDateFormat.parse(terminXL.getVon().getValue());
Date datumBis = (Date) simpleDateFormat.parse(terminXL.getBis().getValue());
stat.setDate(5, datumVon);
stat.setDate(6, datumBis);
stat.setString(6, terminXL.getBis().getValue());
stat.setString(7, terminXL.getReferat().getValue());
stat.executeUpdate();
log.info("Neuer Termin angelegt");
} catch (SQLException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误代码:
线程“JavaFX 应用程序线程”java.lang.RuntimeException …
因为我们有两个日期类:java.sql.Date和java.util.Date.是什么原因ResultSet#getDate()归还sql.Date不是util.Date?
同意sql.Date延伸util.Date.但是,当两个类中的大多数方法看起来相同时,完全创建新类的原因是什么?
如何在没有时间的情况下将日期插入MySQL数据库表?我尝试了这些代码但是我得到以下异常:
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 'Mar 05 00:00:00 GMT-08:00 2014,1,1)' at line 1
Run Code Online (Sandbox Code Playgroud)
注意:在MySQL表中,此列的数据类型我选择了date数据类型
String Date = "\\d\\d\\d\\d\\D[0-1][0-9]\\D[0-3][0-9]";
while (DateMatcher.find()) {
String date = DateMatcher.group().trim();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = formatter.parse(date);
db.insert_date(myDate,2,1);
}
Run Code Online (Sandbox Code Playgroud)
我只有日期部分查询插入日期的问题:
// insert DATE
public void insert_date(Date date_str, int sentence_id ,int document_id ){
// Statements allow to issue SQL queries to the …Run Code Online (Sandbox Code Playgroud) 我试图将字符串"5/23/14 02:23:24"从Eclipse中的String转换为要插入到SQL语句中的Date.我的代码如下:
String dateAndTime = "5/23/14 02:23:24";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy HH:mm:ss");
Date date = sdf.parse(dateAndTime);
long dateLong = date.getTime();
insertStatement.setDate(1, new java.sql.Date(dateLong));
Run Code Online (Sandbox Code Playgroud)
我希望看到
23-MAY-2014 2.23.24.000000000 PM
Run Code Online (Sandbox Code Playgroud)
在我的桌子上,但我看到了
23-MAY-2014 12.00.00.000000000 AM
Run Code Online (Sandbox Code Playgroud)
谁能说清楚我做错了什么?
谢谢!