sqliteクエリをOrmliteクエリに変換したい。
SELECT * FROM Test where strftime('%m-%Y',Date)='11-2001'
上記のクエリのように日付列をフォーマットできませんでした。
Ormliteの日付列を次のようにフォーマットする方法はMM-yyyy
?ありがとう。
sqliteクエリをOrmliteクエリに変換したい。
SELECT * FROM Test where strftime('%m-%Y',Date)='11-2001'
上記のクエリのように日付列をフォーマットできませんでした。
Ormliteの日付列を次のようにフォーマットする方法はMM-yyyy
?ありがとう。
それが使用したい正確なSQLである場合は、次のWhere.raw(...)
方法を使用できます。
QueryBuilder<Test, Integer> qb = testDao.queryBuilder();
qb.where().raw("strftime('%m-%Y',Date) = '11-2001'");
List<Test> results = qb.query();
ただし、これは、日付フィールドがDATE_STRING
タイプとして保存されている場合にのみ機能するようです。
@DatabaseField(dataType = DataType.DATE_STRING)
Date date;
問題は、デフォルトでXerialJDBCドライバーが日付を次の形式で格納していることです。
2012-07-19 09:58:18.36
これは、承認されたSqlite形式の1つと[完全に]一致しません。
に変更するとDataType.DATE_STRING
、次のように保存されます。これは機能しているようです。
2012-07-19 10:03:49.000991
詳細については、日付関数に関するSqliteドキュメントを参照してください。残念ながら、ドキュメントでは、データベース値を特定の形式にする必要があることを完全には説明していません。