使用jdbc将日期输入到hsqldb
如何获取endDate大于当前日期的所有行?我必须使用setString()或setDate()吗?他们都不工作!!! 正确的方法是什么? ResultSet为空,但数据库包含给定sql语句的数据使用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"
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"));