【问题标题】:To fetch records from sqlite table between a range of dates从日期范围内的 sqlite 表中获取记录
【发布时间】:2016-02-11 17:37:29
【问题描述】:

在我的应用程序中,我试图从 sqlite 表中获取与从日期选择器中选择的日期范围相关的记录。表中记录如下:

查询形成如下:

select * from Order_Master where Order_Date >= '12-04-2015' and Order_Date <= '11-03-2016' And WSS_Code = '1014332' 

此查询不会返回任何不是所需结果的值,因为日期在所选范围内。

这里可能有什么问题?我错过了什么吗?

请指导我完成此操作。提前谢谢你!

【问题讨论】:

  • 两种日期格式都与您在数据库和查询中使用的不同
  • 如果Order_date的类型在表定义中是Date,那么你应该使用Java.sql.Date类
  • 使用日期和时间,你会得到你想要的
  • @Madhur No No.. 两种日期格式都是 dd-MM-yyyy
  • @ankitaggarwal 数据类型是日期时间

标签: android sqlite


【解决方案1】:

您的日期格式不能用于比较,因为字符串是按字典顺序比较的,即首先比较第一个字符。 在此查询中,您正在搜索月份至少为 12 且同时不大于 11 的日期。

SQLite 没有单独的日期数据类型。 要将日期存储在数据库中,您必须选择一种现有数据类型(数字或文本)。 使用 SQLite 的内置日期函数时,必须使用formats supported by them 之一。

【讨论】:

    【解决方案2】:

    试试这个,希望对你有帮助

    将您的数据类型更改为文本

    SELECT * FROM Order_Master WHERE Order_Date BETWEEN '12-04-2015' AND '11-03-2016' AND WSS_Code = '1014332'; 
    

    您的查询也将起作用。

    【讨论】:

    • 我已经在我这边试过了,它工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多