SQL中判断时间

Categories: Java; Tagged with: ; @ November 19th, 2010 20:58

需求: (使用JDBC) 在SQL中增加时间限制

简单错误的写法:

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
String dateNow = df.format(new Date(System.currentTimeMillis())); //”2010-11-19″; //new Date(System.currentTimeMillis()).toString();
然后将dateNow加入到SQL中. maybe可工作, 但不能保证数据库平台迁移后仍可继续工作.

正确的解决方法, 使用PreparedStatement设定SQL参数:

StringBuilder sb = new StringBuilder("SELECT oue FROM OUEnroll oue WHERE oue.user_ID = ");
		sb.append(user.getUser_ID()).append("  AND (oue.dateStart IS NULL OR ").append("?2")...

// 省略若干
		select.setParameter(1, user.getUser_ID());
		select.setParameter(2, new Date(System.currentTimeMillis()));

JDBC会根据具体的数据库Driver处理Date并加入到SQL中.

 

<->



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.