0

これは私のデータベースのサンプルです:

  • ステータス日

  • Q2012-08-02。

  • Q2012-08-01。
  • Q2012-09-03。

ここで、アプリケーションを実行すると、2を表示したいという意味になります。これは次の情報を実行します。-一致した情報が完全にいくつあるかを表示した後、データベースの現在の月+ステータス= Qを確認します。たとえば、完全に2は、出力が2と表示されることを意味します。

すでに、現在の日付+ステータス=Q情報の合計カウント値を取得しました。正常に完了しました。ここで私はこのコードを使用しました:

public class RetailerWs {
public int data(){
int count=0;

//count++;

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

  PreparedStatement statement =  con
     .prepareStatement("select * from orders where status='Q' AND date=CURDATE()");
  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;
 }
 }

別のクラスは次のとおりです。

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

}

現在の日付+status=Qの情報を取得するための上記のコード。今月のコードを書く方法を教えてください+status=Q ...。

4

1 に答える 1

0

そのはず:

select * from orders where status='Q' AND MONTH(date) = MONTH(CURDATE())

MySQLの日付と時刻の関数の詳細については、これを参照してください。

1週間は、次のことを試してください。

select * from orders where status='Q' AND WEEK(date) = WEEK(CURDATE())

今年の1週間は、次のことを試してください。

select * from orders where status='Q' AND WEEK(date) = WEEK(CURDATE()) AND YEAR(date) = YEAR(CURDATE())

すべてを1つのチェックにまとめるには、次を使用します。

select * from orders where status='Q' AND YEARWEEK(date) = YEARWEEK(CURDATE())
于 2012-08-02T09:54:41.477 に答える