我试图获取客户到达日期并将其与SQL数据库进行比较,以查看数据库中是否存在相同的日期。但是我收到以下错误:The operator > is undefined for the argument type(s) java.lang.String, java.lang.String
The operator > is undefined for the argument type(s) java.lang.String, java.lang.String
PS我需要通过不使用SQL查询的Java进行比较
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个日期