gpt4 book ai didi

android - 使用包含 "/"的字符串查询数据库

转载 作者:行者123 更新时间:2023-11-30 04:04:44 25 4
gpt4 key购买 nike

我在我的数据库格式“MM/dd/yyyy”中存储了一个日期,我想在特定日期之前进行查询,但是当我进行查询时,游标不返回任何内容。

是因为字符串中的“/”还是其他原因?是的,我知道日期已正确存储在数据库中

@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
return new CursorLoader(getActivity(),Games.GAMES_URI,new String[] {Games.GAMES_ID},Games.GAMES_DATE + "="+dt,
null,null);
}

转换日期

public convertDate(Calendar date){
mDate = date;
Date d = new Date(date.getTimeInMillis());
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
dt = df.format(d);
}

最佳答案

您尝试执行的查询将如下所示:

... WHERE games_date=08/11/2012

它需要在什么地方:

... WHERE games_date="08/11/2012"

(假设 games_date 是列的名称——根据需要替换)

尝试使用 Games.GAMES_DATE + "=?" 作为您的第四个 CursorLoader 构造函数参数,并使用 {dt} 作为您的第五个 CursorLoader 构造函数参数,Android/SQLite 会在需要的地方自动为您添加引号,假设您的 ContentProvider 由 SQLite 支持。

另外,您可以考虑以其他格式存储您的日期。如果您希望它是一个字符串,yyyy-MM-dd(或yyyy/MM/dd)是更好的选择,因为它会按时间顺序正确排序。如果您不需要它是一个字符串,只需将 getTimeInMillis() 存储在 INTEGER 列中将使与 Date 之间的转换变得更容易> 不干扰字符串转换的对象。

关于android - 使用包含 "/"的字符串查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com