-2

Javaで現在の日付の詳細を取得するにはどうすればよいですか? 私はクラスを開発しました:

 public class RetailerWs {

 public String customerData(){
  String customerInfo = "";
  try{
  Class.forName("com.mysql.jdbc.Driver");
  Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/pro","root","");
   //Find customer information where the customer ID is maximum
   PreparedStatement statement =  con.prepareStatement("select * from orders where status='Q' AND date='2012-08-01'");
   ResultSet result = statement.executeQuery();
   int count=0;
    count++;
  // System.out.println(count);
   while(result.next()){
  System.out.println(count);
  }
      }
 catch(Exception exc){
 System.out.println(exc.getMessage());
  }

 return customerInfo;
 }

}

これは別のクラスです。

  public class Demo {
  public static void main(String[] args){
    RetailerWs obj = new RetailerWs();
    System.out.println(obj.customerData());
  }

 }

を実行するdemoと、その後呼び出さRetailerWsれ、 の値が表示されますcount。問題は、現在、日付を手動で挿入していることです。

   PreparedStatement statement =  con.prepareStatement("select * from orders where status='Q' AND date='2012-08-01'");

しかし、現在の日付を取得するクエリが必要です。どうすればそれを作成して呼び出すことができますか? 私を助けてください。

4

4 に答える 4

4

あなたが試すことができます

select * from orders where status='Q' AND date = CURDATE();
于 2012-08-01T09:35:39.023 に答える
1

プリペアドステートメントの日付を疑問符に置き換え、setDate()メソッドを使用してその値を設定します。

statement = con.prepareStatement("select * from orders where status='Q' AND date=?");
statement.setDate(1, new Date());

の最初のパラメータsetDate()は、のインデックス(1から始まります)です?。このメカニズムを他のパラメーター(Q)にも使用することをお勧めします。

于 2012-08-01T09:41:39.163 に答える
1

次のようにカレンダーを実装して使用できます。

public static Date getToday(Date date) {
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);
    return c.getTime();
}
于 2012-08-01T09:36:34.860 に答える
0

日付列に時間部分が含まれている場合は、次のようにクエリを変更する必要があります

select * from orders where status='Q' AND 
date >= CURDATE() and date<CURDATE() +interval 1 day ; 
于 2012-08-01T09:57:56.633 に答える