Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回java中的计数值_Java_Date_Jdbc_Timestamp - Fatal编程技术网

返回java中的计数值

返回java中的计数值,java,date,jdbc,timestamp,Java,Date,Jdbc,Timestamp,嗨,我有一个例子。 这是我的代码: public class GetMonthFromDate { public int data() { int count=0; java.sql.Timestamp timeStamp = new Timestamp(System.currentTimeMillis()); java.sql.Date date = new java.sql.Date(timeStamp.getTime()); //count++;

嗨,我有一个例子。 这是我的代码:

public class GetMonthFromDate {
  public int data() {
    int count=0;
    java.sql.Timestamp timeStamp = new Timestamp(System.currentTimeMillis());
    java.sql.Date date = new java.sql.Date(timeStamp.getTime()); 

    //count++;

    try {
      Class.forName("com.mysql.jdbc.Driver");
      Connection con =
        DriverManager.getConnection("jdbc:mysql://localhost:3306/xcart-432pro",
                                    "root", "");

      PreparedStatement statement =
        con.prepareStatement("select * from xcart_order_status_history where date_time='date'");
      ResultSet result = statement.executeQuery();
      while (result.next()) {
        // Do something with the row returned.
        count++; //if the first col is a count.
      }
    } catch(Exception exc) {
      System.out.println(exc.getMessage());
    }

    return count;
  }
}
在上面的代码是不适合我的

这里我已经使用了这个代码

java.sql.Timestamp timeStamp = new Timestamp(System.currentTimeMillis());
java.sql.Date date = new java.sql.Date(timeStamp.getTime()); 
表示输出仅为
2012-08-08
。所以我只需要在代码中调用date。但它对我不起作用。显示返回的计数值为
0
。o是错的<代码>2仅正确。因为匹配的查询在我的数据库中有2个值

select * from xcart_order_status_history where date_time='date'

您尚未为准备好的语句设置日期值。

请尝试:

PreparedStatement statement = con.prepareStatement("select * from xcart_order_status_history where date_time=?");
statement.setDate(1, date);

如果只需要计数,也不应执行select*。您应该使用select count(*)

您对PreparedStatement的使用完全错误

您不传递变量名,而是传递占位符,然后明确传递它们的值:

PreparedStatement statement =
    con.prepareStatement("select * from xcart_order_status_history where date_time=?");
statement.setDate(1, date);
ResultSet result = statement.executeQuery();
而且你从不把
放在语句中的引号里。数据类型的调整将由JDBC驱动程序处理


您可能需要重新阅读JDBC教程。您似乎错过了一些基本概念:

如何将日期值设置为prepared语句在我的控制台参数索引上显示以下消息超出范围(1>参数数量,即0)。0是否将
放在引号中?是的,上面的代码已被处理,返回的计数值为2。但现在我的数据库日期以时间戳格式保存。现在我如何编写查询代码我的数据库有一个字段。字段名为date。该日期字段以时间戳(int)保存格式我的控制台上显示以下消息参数索引超出范围(1>参数数,即0)。0ya上面的代码已运行,返回的计数值为2。但现在我的数据库日期以时间戳格式保存。现在我如何编写查询代码?你是什么意思?你的意思是你的列数据类型是timestamp而不是date吗?是这样吗?请尝试
语句.setTimestamp(…)
而不是
setDate
。有关如何使用
setTimestamp
googleit;)的更多信息我的数据库有一个字段。字段名是date。该日期字段保存为timestamp(int)格式,这是因为您在代码中给出的时间戳是当前系统时间。如果你得到零,那么你在这段时间没有数据
date\u time
没有记录
System.currentTimeMillis()
。你能给我们看一下你表格中的数据吗?尽管您的jdbc代码错误,但我认为您应该使用日历API来实例化sql日期,而不是调用两个构造函数。在这里,我不会告诉您代码,您应该了解您自己以下消息显示在我的控制台参数索引超出范围(1>参数数量,即0)。0ya上述代码已运行,返回的计数值为2。但现在我的数据库日期以时间戳格式保存。现在我如何编写代码query@krishnaveni:我不知道“数据库日期以时间戳格式保存”的含义。我的数据库有一个字段。字段名为日期。该日期字段以时间戳(int)保存格式。@krishnaveni:所以您有一个名为
date
的列。你的问题是什么?
public class GetMonthFromDate {
    public int data() {
        ...
        java.sql.Timestamp timeStamp = new Timestamp(System.currentTimeMillis());
        ...
        PreparedStatement statement = con.prepareStatement("select * from xcart_order_status_history where date_time=?");
        statement.setTimestamp(1,timeStamp);
        ...

        return count;
    }
}