使用 WHERE 子句作为时间戳从表中选择数据。 我想设置一个从 TextField 检索的字符串值以显示过滤表。
不工作:
public ResultSet queryAlarms() throws SQLException
String sql = "SELECT * FROM BDCS.dbo.Alarms WHERE AlarmTime > ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, " '2017-12-29 14:45' ");
return ps.executeQuery();
}
工作:
public ResultSet queryAlarms() throws SQLException {
String sql = "SELECT * FROM BDCS.dbo.Alarms WHERE AlarmTime > '2017-12-29 14:45'";
PreparedStatement ps = connection.prepareStatement(sql);
return ps.executeQuery();
}
有人知道如何正确发送值吗?或者有什么更好的方法?
最佳答案
试试这个..!
preparedStatement.setTimestamp(1,getCurrentTimeStamp());
您也可以使用文本字段字符串来生成时间戳。
private static java.sql.Timestamp getCurrentTimeStamp() {
java.util.Date today = new java.util.Date();
return new java.sql.Timestamp(today.getTime());
}
private static Timestamp getTimeStamp(String ts){
//Change the format as per your requirement
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse(ts));
long time = date.getTime();
new Timestamp(time);
}
关于java - 用于时间戳比较的准备语句的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48735415/