sql查询验证具有from和date的表单,它应该只允许当前日期而不是第二天

时间:2014-04-17 06:07:36

标签: java mysql sql date

我有一个表格,必须在date picker中输入和到目前为止,但保存数据时,从日期到日期应该是当前日期。如果我作为明天约会输入日期,则不应该允许保存日期。请告诉我如何在mysql中执行此操作。我可以知道实现目标的正确方法是什么?

3 个答案:

答案 0 :(得分:0)

不太确定你想要达到的目标......

一般情况下,如果你必须在java代码中验证表单,那么在将东西插入数据库之前就应该这样。

您可以使用触发器(BEFORE INSERT)或约束检查广告数据库级别(您可以使用约束来确保数据完整性)但我相信Java中的检查更容易维护。

答案 1 :(得分:0)

这样你就可以做到..

  
      
  1. 从屏幕显示日期..(您必须从字符串中解析日期)

  2.   
  3. 今天是午夜的日期

  4.   
  5. 需要明天的午夜日期

  6.   
  7. 检查屏幕的日期应该是今天的午夜和明天的午夜之间

  8.   
Date date_from_screen = new Date();

Date today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);

Date tomorrow = new Date(today.getTime() + 1 * 24 * 60 * 60 * 1000);
tomorrow.setHours(0);
tomorrow.setMinutes(0);
tomorrow.setSeconds(0);


if((date_from_screen.getTime() >= today.getTime()) &&  (date_from_screen.getTime() <= tomorrow.getTime()))
{
    System.out.println("valid date");
}
else
{
    System.out.println("invalide date");
}

答案 2 :(得分:0)

java 8用户的另一个参考:

如果您指的是:

  

http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/DatePicker.html

然后你只需要玩:

  

http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html

final DatePicker datePicker = new DatePicker(); //assuming this is your DatePicker on the form
LocalDate date = datePicker.getValue();

//comparing with current date (LocalDate.now())
if(date.compareTo(LocalDate.now())!=0)
{
    JOptionPane.showMessageDialog(null, "Invalid input date!");
}
else{
    //save to DB..
}

注意:虽然我还没有尝试过这样做..