2017-06-22 97 views
0

我在SQLite中有一個數據庫,每次用戶插入一個新的寄存器時都會保存當前的日期和時間。日期使用時間字符串格式存儲在數據庫中:YYYY-MM-DD HH:MM:SS。使用ContentResolver在SQLite數據庫中的兩個日期之間選擇數據?

所以問題是我需要選擇兩個日期之間的範圍內的寄存器,並將結果從低到高排序。我正在使用我自己的內容提供程序,因此我如何執行此操作?

這是我的查詢代碼:

    final String[] projection = {Contrato.Columnas._ID,Contrato.Columnas.SISTOLICA,Contrato.Columnas.DIASTOLICA,Contrato.Columnas.PULSO};      
        final String orderBy = Contrato.Columnas.SISTOLICA + " DESC"; 
        Cursor c = resolver.query(Contrato.URI_CONTENIDO_BASE,projection,null,null,orderBy); 
+0

「ContentProvider」主要用於將數據發佈到第三方應用程序。你爲什麼在這裏使用一個? – CommonsWare

+0

是一個醫療應用程序,它將分享患者的應用程序的血壓測量報告,醫生應用程序(和醫院系統的其他應用程序),這就是爲什麼我使用ContentProvider,但如果沒有辦法做到這一點我認爲應該使用rawQuery。 –

回答

1

一個ContentProvider是一個門面。任何ContentProvider/ContentResolver API的含義取決於您。只要客戶和供應商就query()這樣的參數達成一致,就可以做任何你想做的事情。

所以,替換:

resolver.query(Contrato.URI_CONTENIDO_BASE,projection,null,null,orderBy) 

的東西,如:

resolver.query(Contrato.URI_CONTENIDO_BASE,projection,Contrato.Columnas.SISTOLICA+">=? AND "+Contrato.Columnas.SISTOLICA+"<=?",args,orderBy) 

其中args有兩個日期,在YYYY-MM-DD HH:MM:SS格式。也許,你可以將這些東西一起傳遞給SQLite,而無需修改。即使你確實需要修改它......再次,它是你的代碼,所以你可以讓它做任何你想要的。

+0

它工作了謝謝你! –

相關問題