Android SQLLite来自current_timestamp列的最近31天数据

时间:2017-09-20 05:16:55

标签: android sqlite

我试图使用SQL下面的SQLLite数据库提取最近31天的数据。我已经搜索了谷歌并尝试了各种选项,而所有SQL工作我没有得到预期的结果。例如,在下面的屏幕截图中,你会看到我确实在18-Sep有记录但是sql没有返回任何结果......我不确定我在这里缺少什么..

SELECT * FROM transactions WHERE TIMESTAMP > (SELECT DATETIME('now', '-30 day'))

enter image description here

2 个答案:

答案 0 :(得分:2)

直接使用Between而不是Timestamp比较 -

SELECT * FROM transactions WHERE TIMESTAMP BETWEEN datetime('now', '-31 days') AND datetime('now', 'localtime')

这是因为SQLlite以String格式存储日期,并且没有标准的DateTime格式。所以String的直接比较会失败。因此,使用datetime函数将日期与现有值进行比较会有所帮助。

答案 1 :(得分:0)

您也可以尝试

<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> </script> <style> </style> </head> <body> <h2>Filterable Table</h2> <input type="checkbox" class="name" name="name" value="John" />John <input type="checkbox" class="name" name="name" value="July" />July <br><br> <table> <thead> <tr> <th>Firstname</th> <th>Lastname</th> <th>Email</th> </tr> </thead> <tbody id="myTable"> <tr> <td>John</td> <td>Doe</td> <td>john@example.com</td> </tr> <tr> <td>Mary</td> <td>Moe</td> <td>mary@mail.com</td> </tr> <tr> <td>July</td> <td>Dooley</td> <td>july@greatstuff.com</td> </tr> <tr> <td>July</td> <td>Dooley</td> <td>july@greatstuff.com</td> </tr> <tr> <td>Anja</td> <td>Ravendale</td> <td>a_r@test.com</td> </tr> </tbody> </table> <p>Note that we start the search in tbody, to prevent filtering the table headers.</p> </body> </html>