Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jdbc将日期输入到hsqldb_Jdbc_Hsqldb_Resultset_Sql Date Functions - Fatal编程技术网

使用jdbc将日期输入到hsqldb

使用jdbc将日期输入到hsqldb,jdbc,hsqldb,resultset,sql-date-functions,Jdbc,Hsqldb,Resultset,Sql Date Functions,如何获取endDate大于当前日期的所有行?我必须使用setString()或setDate()吗?他们都不工作!!! 正确的方法是什么? ResultSet为空,但数据库包含给定sql语句的数据 public ArrayList<AddBean> listPendingTasks() { java.util.Date date = new java.util.Date(); String modifiedDate= new SimpleDateFormat("yyyy-MM-dd"

如何获取endDate大于当前日期的所有行?我必须使用setString()或setDate()吗?他们都不工作!!! 正确的方法是什么? ResultSet为空,但数据库包含给定sql语句的数据

public ArrayList<AddBean> listPendingTasks() {
java.util.Date date = new java.util.Date();
String modifiedDate= new SimpleDateFormat("yyyy-MM-dd").format(date);
Connection con = JDBCHelper.getConnection();
PreparedStatement ps_sel = null;
ArrayList<AddBean> c = new ArrayList<AddBean>();
ResultSet rs = null;
try {
    ps_sel = con.prepareStatement("select * from tasks where enddate > ? order by enddate");
    ps_sel.setString(2, modifiedDate);
    ps_sel.execute();
    rs = ps_sel.getResultSet();
    while(rs.next())
    {
        AddBean ab = new AddBean();
        ab.setTname(rs.getString(2));
        ab.setCategory(rs.getString(3));
        ab.setStartdate(rs.getString(4));
        ab.setEnddate(rs.getString(5));
        ab.setDescription(rs.getString(6));
        ab.setPriority(rs.getString(7));
        c.add(ab);
    }

    return c;
} catch (SQLException e) {
    e.printStackTrace();
    return null;
}
publicArrayList listPendingTasks(){
java.util.Date Date=新建java.util.Date();
字符串modifiedDate=新的SimpleDateFormat(“yyyy-MM-dd”)。格式(日期);
Connection con=JDBCHelper.getConnection();
PreparedStatement ps_sel=null;
ArrayList c=新的ArrayList();
结果集rs=null;
试一试{
ps_sel=con.prepareStatement(“从任务中选择*,其中enddate>?按enddate排序”);
ps_选择设置管柱(2,修改后);
ps_sel.execute();
rs=ps_sel.getResultSet();
while(rs.next())
{
AddBean ab=新的AddBean();
ab.setTname(rs.getString(2));
ab.setCategory(rs.getString(3));
ab.setStartdate(rs.getString(4));
ab.setEnddate(rs.getString(5));
ab.setDescription(rs.getString(6));
ab.setPriority(rs.getString(7));
c、 添加(ab);
}
返回c;
}捕获(SQLE异常){
e、 printStackTrace();
返回null;
}

试试这个

如果表中有日期类型的列:

从[values]v中选择*其中日期>='2013-06-03';

然后用这个方法


更新为:

日期类型用于包含日期部分但不包含时间部分的值。MySQL以
'YYYY-MM-DD'
格式检索和显示日期值。支持的范围为
'1000-01-01'到'9999-12-31'
。MySQL以
'HH:MM:SS'
格式检索和显示时间值。时间值的范围可能为from
“-838:59:59”到“838:59:59”

String QUERY=“UPDATE TABLE_NAME SET dateValue=?,timeValue=?,timeStampText=?其中rowdidentify=?”;
PreparedStatement pstmt=con.prepareStatement(查询);
pstmt.setDate(1,java.sql.Date.valueOf(localDate));//日期类型
pstmt.setTime(2,java.sql.Time.valueOf(localTime));//时间类型
pstmt.setString(3,localDateTime);//文本类型
pstmt.setString(4,条件值);
获取上述日期字段值的示例代码

long startTime=System.currentTimeMillis();
String str=getDateFromEpochTime(startTime);
CharSequence CharSequence=str.subSequence(0,str.length());
字符串模式=“yyyy-MM-dd HH:MM:ss”;
DateTimeFormatter DateTimeFormatter=java.time.format.DateTimeFormatter.of模式(模式);
LocalDate LocalDate=java.time.LocalDate.parse(charSequence,dateTimeFormatter);
LocalTime LocalTime=java.time.LocalTime.parse(charSequence,dateTimeFormatter);
LocalDateTime LocalDateTime=LocalDateTime.parse(charSequence,dateTimeFormatter);
Java SQL驱动程序不支持表列的
DATETIME或Timestamp
类型的
Java.SQL.Timestamp
。当查询包含
Date和Time类型时,请尝试使用
PreparedStatement


学习数据库的日期格式。hsql db支持“yyyy-mm-dd”。如果您使用准备好的语句,那么您可以将日期作为字符串或日期输入。这不会有什么区别。我建议使用字符串。对于初学者来说,使用日期有点复杂,因为它不是util日期。它的sql日期。日期格式有时会很麻烦。

谢谢:)这很有帮助
ps.setDate(2, java.sql.Date.valueOf("2015-09-13"));