java - 用于时间戳比较的准备语句的字符串值

标签 java sql-server jdbc timestamp

使用 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/

相关文章:

Java 变量在 void 方法后更新

Java数字签名和C++ CryptSignMessage导致的结果不同

java - 文本显示之间暂停

php - 插入Mysql表中的特定列

java - ObjectInputStream.readObject() 可以返回 null 吗?

sql-server - Smalldatetime 的 Cast() 失败时的默认值

c# - 尝试创建新表时对象名称无效

Java - 加载 JTabbedPane 一个又一个选项卡

tomcat - 为什么在我使用 Tomcat 7 JDBC 连接池取消部署 Web 应用程序时连接仍然存在?

java - JDBC 的极限