如何将字符串日期与格式“dd-MM-yyyy”比较为空字符串

时间:2017-08-25 09:13:43

标签: android sqlite

大家好过去三天我一直在处理一个简单的查询,但它只是不起作用,我试图阻止注册离开而没有注册到达,这是我的数据库助手中的代码,不确定该查询有什么问题!!

public Boolean HasShowedUpToday(int check_id)
{  
    Boolean attend;
    SQLiteDatabase db=this.getWritableDatabase();
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy", Locale.getDefault());
    time=Calendar.getInstance().getTime();
    String dateoftoday= dateFormat.format(time);       
    Cursor c = db.rawQuery("SELECT * FROM attendance where user_id = '"+check_id+"' and arrival_time ='"+dateoftoday+"' and departure_time ='';", null);
    if (c.moveToFirst())
    {

        attend=true;
    }
    else
    {
        attend=false;
    }
    return attend;
}

1 个答案:

答案 0 :(得分:0)

首先,不要构造那样的查询。这是非常错误的习惯,这将使您将来编写易受SQL注入攻击的代码。

使用rawQuery (String sql, String[] selectionArgs)。 所以看起来应该是这样的:

Cursor c = db.rawQuery("SELECT * FROM attendance where user_id = ? and arrival_time = ? and departure_time IS NULL", 
                       new String[] { check_id, dateoftoday} );

另请查看this SO answer。并且this answer看起来更好 - 将日期存储为自EPOCH时间以来的毫秒数。