【问题标题】:To calculate age from dob and current date in java在java中从dob和当前日期计算年龄
【发布时间】:2014-05-30 18:59:52
【问题描述】:

我在java中使用以下方法从dob和当前日期计算年龄,dob存储在数据库表中,使用getter setter方法导出dob值并将dob传递给getAge1方法,方法查询在php myadmin mysql中运行良好控制台,当我将查询结果存储在结果集中时,它在 int age 变量中给出空值。

public int getAge1(int id,String dob)
{


    try { 
        System.out.println("DOB is:"+dob);
        System.out.println("Id is:"+id);
         Connection conn = null;
         conn = DbConnection.getConnection();
         PreparedStatement ps = null;
         ResultSet rs = null;   

         String s3 = "SELECT TIMESTAMPDIFF(YEAR,"+ dob +",CURDATE()) from custregister where cid="+ id ;

         System.out.println("sql :"+s3);
            ps = conn.prepareStatement(s3);
            rs = ps.executeQuery();
            while (rs.next()) 
            {

                int s2 =rs.getInt(1);
                System.out.println("Age is "+s2);
                age=s2;
            }
    }catch(Exception e){e.printStackTrace();}   
    //SELECT TIMESTAMPDIFF(YEAR, 'dob', CURDATE()) AS age;
    return age;
}   

【问题讨论】:

  • 只执行语句...如果你使用preparedstatement pass 参数id 之后
  • 尝试使用语句 executeQuery() 而不是preparedStatement,结果仍然是int null value 0
  • 我没有收到任何错误,该值不是从结果集或查询中获取的形式
  • 是的查询在执行为 SELECT TIMESTAMPDIFF(YEAR, dob,CURDATE()) from custregister where cid=101 时给出正确的结果;
  • 简单地从数据库中选择值并在应用程序级别计算它不是更容易/更好吗?这允许更大的灵活性(例如,您需要其他日期,需要考虑语言环境,...)

标签: java mysql


【解决方案1】:

试试这个:

     SELECT 
     TIMESTAMPDIFF(YEAR, dob, CURDATE())AS AGE 
     from custregister 
     where cid= your id ;

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff

更新:1

String s3 = "SELECT TIMESTAMPDIFF(YEAR,"+ dob +",CURDATE()) from custregister  where cid='+id'" ;

【讨论】:

  • 是的,我的查询运行良好,但没有正确获取结果集值
【解决方案2】:

在传递到该 SELECT 语句的日期值周围添加单引号。

【讨论】:

  • (a) 您的 cmets 无法理解。 (B) 将您的s3 SELECT 语句字符串的值与 jmail 答案中链接的文档中的示例进行比较。注意引号。
猜你喜欢
  • 1970-01-01
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 2020-07-13
  • 1970-01-01
相关资源
最近更新 更多