如何选择特定日期的某些行

Posted

技术标签:

【中文标题】如何选择特定日期的某些行【英文标题】:how to select some rows of specific date 【发布时间】:2014-08-16 06:14:08 【问题描述】:

我使用 sqlite 数据库我想选择一些特定日期的行。 我在哪里使用 e_date 作为文本

创建表expenses ( id 整数主键自动增量, e_type 文本不为空, e_date 文本不为空, e_amt 文本不为空, e_method 文本不为空, desc文字 );

我尝试使用查询选择的位置

从 e_date 在 2014 年 7 月 7 日到 2014 年 8 月 15 日之间的费用中选择 *;

但它不起作用帮助我..

【问题讨论】:

【参考方案1】:

尝试以ISO 8601 格式存储您的日期,例如yyyy-MM-dd。您的两个日期的示例...

2014-07-31
2014-08-15

使用该格式意味着您实际上可以按字母数字排序并进行比较。如果您随后将查询更改为以下内容,它将起作用...

SELECT * from expenses WHERE e_date >= '2014-07-31' AND e_date <= '2014-08-15'

编辑:考虑一下,如果您使用 ISO 8601 格式,您实际上可以使用 SQL BETWEEN 运算符,但您必须使用单引号将字符串括起来。

SELECT * from expenses WHERE e_date BETWEEN '2014-07-31' AND '2014-08-15'

另外,只是一个提示 - 不要在第一列中使用 id,而是使用 _id(注意前面的“下划线”)。如果您使用各种 android 适配器和适配器视图,则必须有一个名为 _id 的列。

【讨论】:

关于重命名id 的好建议。但我建议使用尾随下划线id_,而不是前导。 SQL 规范明确承诺永远不会有带有尾随下划线的保留字。因此,在所有 SQL 名称上使用尾随下划线意味着永远不必担心或遭受与保留字和关键字的冲突。详情请见my answer。 @BasilBourque :正如我所提到的 - 当使用 Android Adapter 和 AdapterView 类时,查询返回的数据集与游标一起使用时必须有一个名为 _id 的唯一列。如果没有名为_id 的列,甚至会引发特定异常。

以上是关于如何选择特定日期的某些行的主要内容,如果未能解决你的问题,请参考以下文章

如何验证日期选择器以禁止/拒绝某些日期?

在 datepicker 中选择特定日期时,如何自动填充特定的星期几?

如何在 android 日期选择器中将特定选定日期设置为最小日期? (爪哇)

如何在引导日期选择器中突出显示特定日期?

如何在 android 日期选择器中将特定选定日期设置为最小日期? [复制]

网页的日期选择器,只允许点击特定日期