Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
SQL语句-Java_Sql_Sqlite_Date_Jdbc - Fatal编程技术网

SQL语句-Java

SQL语句-Java,sql,sqlite,date,jdbc,Sql,Sqlite,Date,Jdbc,我一直在尝试提出一些SQL语句来说明如何正确实现这一点,但运气不好。我在之间尝试了,=和=似乎你在试图重新发明轮子PreparedStatements就是为这个用例创建的——在预定义的结构中设置变量值。在您的情况下,使用该方法。从上下文来看,我猜您的fromDate和toDate变量都是实例,因此您必须将它们转换为s 您可以使用SimpleDataFormat获取一个字符串,该字符串的格式正确,可以用作SQLite中的日期,正确的格式为yyyy-MM-dd: String pattern = "

我一直在尝试提出一些SQL语句来说明如何正确实现这一点,但运气不好。我在之间尝试了
=和=似乎你在试图重新发明轮子
PreparedStatement
s就是为这个用例创建的——在预定义的结构中设置变量值。在您的情况下,使用该方法。从上下文来看,我猜您的
fromDate
toDate
变量都是实例,因此您必须将它们转换为s


您可以使用
SimpleDataFormat
获取一个字符串,该字符串的格式正确,可以用作SQLite中的日期,正确的格式为
yyyy-MM-dd

String pattern = "yyyy-MM-dd";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
String stringFromDate = dateFormat.format(fromDate.getDate());

-您不应该将SQL语句连接在一起-使用参数化查询来避免SQL注入最有可能的是
stringFromDate
stringToDate
的格式不正确,这就是查询无法按预期工作的原因。更新并向我们显示正在执行的实际原始查询。还有,正在使用什么版本的SQL?@marc_s我正在查看您现在给我的链接。谢谢。@TimBiegeleisen我在用SQLite。谢谢我不明白的是,为什么其他月份的日子都是这样。我真的以为它起作用了,但后来这个。说到术语,我有点傻,我想把你要的东西告诉你,但恐怕你把我的话都说出来了。还是谢谢。:)向我们显示
stringFromDate
stringToDate
的文本值。这就解决了它!谢谢!我用了蒂姆的建议,效果很好。我也会记住这一点,并且会尝试下一个我要做的项目。谢谢
java.sql.Date fromDateToBind = new java.sql.Date(fromDate);
java.sql.Date toDateToBind = new java.sql.Date(toDate);

String query = "Select * from tblSavings where date between ? and ?";

try{ 
    pstmt = conn.prepareStatement(query);
    pstmt.setDate(1, fromDateToBind);
    pstmt.setDate(2, toDateToBind);
    rs = pstmt.executeQuery();

    // use the results...
} // etc...
String pattern = "yyyy-MM-dd";
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
String stringFromDate = dateFormat.format(fromDate.getDate());