当前位置: 首页 > 知识库问答 >
问题:

如何从日期列中选择基于日期的SQLIte列

伍成仁
2023-03-14

我有一个SQLite数据库,我在其中根据给定日期从所有列获取数据,例如。2018年9月30日。在COL2中,我以相同的格式保存日期。

Cursor inc_con_by_dat(String dat) {
    SQLiteDatabase db = this.getWritableDatabase();

    String que = "SELECT * FROM " + TABLE_NAME +
            " WHERE " + COL2 + " = '" + dat + "'";
    return db.rawQuery(que, null);
}

但是现在COL2不再有2018年9月30日这样的日期格式了。因为我已经决定在第二栏中加入数据输入时间。

所以我把COL2保存为“EEE MMM dd HH:mm:ss Z yyyy”这种格式。但是我愿意将我的“EEE MMM dd HH:mm:ss Z yyyy”格式更改为任何包含日期和时间的格式。但我想选择只提供像这样的示例格式“2018年9月30日”或yyyy/mm/dd的列,所以有人能帮我吗?或者我只需要为时间条目创建另一个列。

共有1个答案

莘聪
2023-03-14

所以我把COL2保存为“EEE MMM dd HH:mm:ss Z yyyy”这种格式

停止这样做。SQLite 实际上没有日期列类型,这意味着您的日期信息存储为文字文本。与其试图给你一个解决方法,我只是建议你总是使用ISO格式将日期和时间戳存储在SQLite中,例如:

YYYY-MM-DD HH:MI:SS

如果您接受此建议,那么您将能够轻松地将另一个ISO日期或时间戳与表中的任何记录进行比较。例如,如果您想查找具有2018-09-30时间戳的所有记录,您可以使用此查询:

SELECT *
FROM yourTable
WHERE ts >= '2018-09-30' AND ts < '2018-10-01';
 类似资料:
  • 问题内容: 我有一个类型为“ datetime”的列,其值类似于2009-10-20 10:00:00 我想从datetime提取日期并编写类似的查询: 以下是最好的方法吗? 但是,这将返回一个空的结果集。有什么建议么? 问题答案: 您可以使用MySQL的功能: 您也可以尝试以下方法: 有关使用的性能影响的信息,请参见此答案。

  • 我已经记录了用于从日期选择器中选择日期的selenium代码。在运行测试用例时,日期选择器会弹出并正确突出显示所选日期。但是没有选择日期。代码如下所示:- 此异常仅出现在记录的代码中。我使用的是selenium-server-standalone-2 . 45 . 0 jar。

  • 我试图通过以下查询获得日期。但没用。 我已经解析了用户输入日期,以'yyyy-mm-dd'格式存储到数据库中。帮我从所有记录中找出今天的生日日期。

  • 我想在日期时间选择器中选择大于开始日期的结束日期时间。 当前,我正在开始日期时间和结束日期时间。 假设,我选择了时间为12:00 pm的当前日期,现在end date应该是时间为1:00 pm的当前日期。 我想要下面这样的东西 示例 开始日期和时间:---2019-11-06 12:00结束日期和时间:---2019-11-06 1:00 这是我的代码 null null

  • HTML与它的外观截图一起粘贴,如下所示。 HTML: 我曾经试过 甚至试图等待命令以使定位器被找到但没有成功。 WebDriverWait(驱动程序,100)。直到(预期条件.element可禁用)(By.css选择器 两者都不起作用,因为它无法识别元素。有人能帮我吗。如果可能,我们甚至可以单击“上一个”和“下一个”,以便我们也可以单击一些以前的日期吗?

  • 有没有比我做的更好的方法来编码它?因为我需要将date解析为string和than解析为int来比较,而且代码相当长。 }