【问题标题】:Is the select with named parameter query correct?带有命名参数查询的选择是否正确?
【发布时间】:2013-03-04 09:59:05
【问题描述】:

下面的查询正确吗?

final String sqlQuery = "select  e.COMM,  e.DEPTNO,  e.EMPNO,  e.ENAME from EMP e where
 DATE between(:joinDate and :relievDate  )";
 Map namedParameters = new HashMap();
 namedParameters.put("joinDate", new Date(2000-01-02));
 namedParameters.put("relievDate", new Date(2010-03-04));
 List result = namedParameterJdbcTemplate.queryForList(sqlQuery, namedParameters);

【问题讨论】:

  • 可能在 SQL 末尾缺少双引号
  • 那么,什么是正确的查询?
  • new Date(2000-01-02) 在我看来非常可疑。顺便说一句,找出某事是否正确的最简单方法是将代码放入,运行它,看看它是否有效。最好的学习方式。
  • sqlQuery 是否正确?
  • 然后从 (:joinDate 和 :relievDate ) 周围取下括号

标签: java mysql sql database eclipse


【解决方案1】:
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
namedParameters.put("joinDate", new Date(df.parse("2000-01-02")));
namedParameters.put("relievDate", new Date(df.parse("2000-03-04")));

试试这个以获得可以在查询中使用的更好的日期格式。

【讨论】:

    猜你喜欢
    • 2011-01-27
    • 2013-02-07
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多