簡體   English   中英

Java和SQL比較日期

[英]Java & SQL comparing dates

我正在嘗試獲取客戶端到達日期並將其與我的SQL數據庫進行比較,以查看在我的數據庫中是否存在相同的日期。 但是我收到以下錯誤: The operator > is undefined for the argument type(s) java.lang.String, java.lang.String

PS我需要通過java比較它而不是使用sql查詢

public void makeNewReservation() throws ParseException {
    // Enter informations

    System.out.println("Date of arrivel?");
    Scanner in = new Scanner(System.in);
    String date_entree = in.next();
    System.out.println("Date of exit? dd/MM/yyyy");
    String date_sortiee = in.next();
    calculateDaysDifference(date_sortiee, date_entree);



public  void calculateDaysDifference(String date_entree, String date_sortiee) throws ParseException{


ConnectionMySQL myConnection=new ConnectionMySQL();
    Connection conSQL=myConnection.startDBConnection();
    boolean connectionOK=myConnection.checkConnection(conSQL);

    String query = ("SELECT `START_DATE`,`END_DATE` FROM `room_booking");


    //if everything is fine with the connection, i try to execute a query
    if (connectionOK){
        try{
            ResultSet mesResultats=myConnection.executeQuery(conSQL, query);

            //the while loop is just for me to check the dates
            while (mesResultats.next()) {
                System.out.println("START_DATE: "+mesResultats.getString(1)+" END_DATE : "+ mesResultats.getString(2));


                if (date_entree > mesResultats.getString(1){
                    System.out.println("cant reserve room room reserved already");


                }
            }


            // je ferme la connexion
            conSQL.close();

        }

        catch(SQLException e){
            e.printStackTrace();


        }

    }

我的數據庫

你需要比較2個日期

1)將輸入字符串轉換為日期

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date d=df.format(/*date String*/);

NOTE: df.format will throw parseException if the String format does not match "yyyy-MM-dd" . I leave it upto you to make sure the date string is of the specified format. 

2)從SQL查詢中獲取日期

java.util.Date sqlDate=new java.util.Date(resultset.getDate().getTime());

NOTE : resultset.getDate() will give you java.sql.Date class's object.

3) 比較2個日期

嘗試這個邏輯

Date date1=new Date(df.parse(mesResultats.getString(1)));
Date date2=new Date(df.parse(mesResultats.getString(2)));

int status=date1.compareTo(date2); //compareto is a function defined for date

if status==0 print same date
if status<0 print  date1 is older then date2
if status>0 print  date1 is newer then date2

[評論后更新] DateFormat df = new SimpleDateFormat("Format of your date goes here");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM