11

以下は、sqlitedbからクエリとして取得したもののスナップショットです。

max()グーグルしていくつかの質問を読んだ後、sqliteは多くのデータ型をサポートしていませんが、データ型をとして扱うため、のような集計関数を使用して最大日時を取得することは不可能であることがわかりましたtext

Listだから、私はこのデータをまたはjavaレベルで持ってきました。では、どうすればこのリストから最大日時を取得できますか。

Javaでこのフォーマットの直接構造はありますか?それとも、私が見つけられなかったsqliteレベルの何かがありますか?

Sqliteがデータを返しました

4

4 に答える 4

19

SQLiteでテキストを比較、並べ替え、並べ替えることができます。

フォーマットはYYYY-MM-ddhh:mm:ssのようです。幸運なことに、この形式で注文すると、日付で注文されます。

ただ

select current_test_id from someTable order by test_datetime desc limit 1

また

select current_test_id, max(test_datetime) from someTable

(または何か、2番目のものについては完全にはわかりません)

于 2012-12-12T11:03:54.547 に答える
2

日時フィールドテキストのタイプを設定すると、次のクエリを実行できますが、日時は次のようになります。yyyy-mm-dd hh:mm:ss

select max(datetime) from tableName;
于 2013-12-30T11:32:10.890 に答える
0

一般的なアプローチは、変換されたデータを長く保存することです。

date.getTime()Dateインスタンスから長くなりDate date = new Date(timestamp);、タイムスタンプから日付オブジェクトを取得するために使用します。

あなたがあなたのデータベースに長いものを持ったら、あなたはあなたが望むどんな順序付け/比較も実行することができます。

于 2012-12-12T11:03:18.403 に答える
0

タイプ(文字列)の時間のセットから最大値を取得するには、サブ文字列を使用していくつかの連結を行う必要があります。このクエリの使用最大または最小時間は、sqlliteを使用して見つけることができます。

select max(datetime(case 
when substr(TimeIn,7,2)='PM' 
then substr(TimeIn,1,2)+12 
else substr(TimeIn,1,2) 
end  || ':' || substr(TimeIn,4,2) || ':' || '00'))  
from tablename 
where Date='10/06/2016'
于 2016-10-11T10:41:50.137 に答える