1

これは私のデータベースです:

date          status
1343469690     Q
1343470540     C
1343470556     P

私はこのコードを書きました:

public class TodayQ {

    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;
    }
}

日付がyyyy-mm-ddフォーマットされている場合、正常に機能します。しかし今、私の日付は1343469690形式のタイムスタンプです。カウント値を取得するにはどうすればよいですか?

4

2 に答える 2

0

CURDATE ()FROM_UNIXTIME( ) に置き換えます。コードによると、次のように変更する必要があります。

      PreparedStatement statement = con.prepareStatement("select * from orders where status='Q' AND date=FROM_UNIXTIME(date,'%Y %M %D')");

こちらのリファレンスを参照してください

于 2012-08-06T11:29:38.387 に答える
0

それが実際にタイムスタンプである場合は、日付があります: http://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.htmlを参照してください。TimeStamp を Calendar (http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html) に変換するのは簡単です。Calendar.setTimeInMillis() メソッドを参照してください。

于 2012-08-06T10:52:12.190 に答える