0

我在 SQLite 数据库中执行以下查询:

" ...WHERE mydate >= '" + inicialdate + "' AND mydate <= '" + finaldate + "'";

mydate是数据库中的字段,键入 DATE。inicialdate并且finaldate是字符串。

这里的想法是在用户给出的两个不同日期之间执行查询。我使用 DataPicker 允许用户输入数据。
因此,我从 DatePicker 返回这些日期并将它们放入inicialdatefinaldate字符串中。

我在字符串中输入的日期格式是“YYYY-MM-DD”。

当我只是在finaldate字符串中输入一些值时,查询返回了一些东西,但是当我将日期放入两个字符串中,或​​者只是在第一个字符串中时,我从查询中没有收到任何信息。

4

2 回答 2

1

这有效:

> sqlite3
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test(mydate date);
sqlite> insert into test values('2012-09-09');
sqlite> select * from test where mydate >= '2012-09-08' and mydate <= '2012-09-10';
2012-09-09

相同的查询在您的数据库中是否有效?我猜想表中的值可能使用不同的格式。

于 2012-09-10T07:11:48.777 回答
0

" ...WHERE mydate >= '" + inicialdate + "' AND mydate <= '" + finaldate + "'";

这条查询是对的。问题出在我的代码中,使用 de datapicker。

要在 SQLITE 中执行查询,我需要使用格式 YYYY-MM-DD。我直接从数据选择器获取数据以执行查询,因此有时它会检索格式为 YYYY-MD 的数据。在数据选择器中,当月份或日期小于 10 时,它只需输入一个数字来表示月份或日期。

Tha 解决方案只是使用 if 语句查看数字是否小于 10,然后在月份或日期的数字前加上“0”。

嗯,这完全解决了问题

于 2017-03-08T19:37:22.453 回答