android - SQLite 查询相关范围内的日期
问题描述
我正在使用 android studio 和 SQLite。我在 SQLite 中设置了我的处方表,并为我的开始日期和结束日期使用了 TEXT 类型。在查询此数据时,我不太确定 TEXT 是否是合适的数据类型。我想显示开始日期早于或等于当前日期且结束日期大于或等于当前日期的记录。下面的代码来自我的 DatabaseHelper.java 类;
//Create prescription table
public static final String TABLE_PRESCRIPTION = "prescription_table";
public static final String COL_PRESCRIPTION_ID = "PRESCRIPTIONID";
public static final String COL_PRESCRIPTION__PATIENTID = COL_PATIENT_PATIENTID;
public static final String COL_PRESCRIPTION__DATE = "DATE";
public static final String COL_PRESCRIPTION__DRUGNAME = "DRUGNAME";
public static final String COL_PRESCRIPTION__CONCENTRATION = "CONCENTRATION";
public static final String COL_PRESCRIPTION__DOSAGE = "DOSAGE";
public static final String COL_PRESCRIPTION__PREPARATION = "PREPARATION";
public static final String COL_PRESCRIPTION__STARTDATE = "STARTDATE";
public static final String COL_PRESCRIPTION__ENDDATE = "ENDDATE";
public static final String COL_PRESCRIPTION__DOCTORID = "DOCTORID";
public void onCreate (SQLiteDatabase db) {
String prescriptiontable = "CREATE TABLE " + TABLE_PRESCRIPTION + "(PRESCRIPTIONID INTEGER PRIMARY KEY AUTOINCREMENT, PATIENTID INTEGER, DATE TEXT, DRUGNAME TEXT, CONCENTRATION TEXT, DOSAGE TEXT, PREPARATION TEXT, STARTDATE TEXT, ENDDATE TEXT, DOCTORID INTEGER)";
//execute SQL statements
db.execSQL(prescriptiontable);
}
public Cursor getPrescriptionsPerPatient(String patientid){
SQLiteDatabase db = this.getReadableDatabase();
//SQL select statement
Cursor data = db.rawQuery("SELECT * FROM prescription_table WHERE PATIENTID =? AND strftime('%d/%m/%Y',date('now') BETWEEN " +
"STARTDATE AND ENDDATE)",
new String[]{patientid});
return data;
}
错误在 getPrescriptionsPerPatient() 方法中。任何帮助,将不胜感激!谢谢
解决方案
假设您以 SQLite 支持的格式之一存储日期(通常是:) YYYY-MM-DD
,您可以这样做:
SELECT *
FROM prescription_table
WHERE
patientid = ?
AND date('now') BETWEEN startdate AND enddate
推荐阅读
- c - C 中的命名信号量在信号处理程序调用后不会被删除
- javascript - 如何从列表中生成随机值及其结果?
- powershell - 测试注册表路径后如何从powershell中的预定义数组更改寄存器值?
- ios - 使用 Segue,如何控制不同视图控制器中视图的可见性?
- datetime - Delphi 从 TDateEdit 组件计算人的年龄
- .net-core - 如何正确使用 .Net Core SignalR 的依赖注入
- python-3.x - 保存经过训练的模型后缺少 pbtxt
- visual-studio - '无法加载文件或程序集'FSharp.Core,版本= 4.6.2.0
- javascript - 有没有办法“堆叠”弹出窗口而不是标记 - 传单
- r - 如何在没有空行的情况下从 R 中保存 Excel 工作表?