10

時刻が「今日」のレコードのみをデータベースから取得するクエリを作成する方法。日付をできるだけ長く保存します。

例: DateColumn (私の列の名前) で、私のテーブルの名前は MyTable です

1360054701278 (2013 年 2 月 5 日火曜日午前 8:58:21 GMT) 1359795295000 (2013 年 2 月 2 日土曜日午前 8:54:55 GMT)

では、最初のレコードを取得するには、この例のクエリをどのように作成すればよいでしょうか (日付が今日と同じであるため)。

任意の提案をいただければ幸いです。ありがとう

4

2 に答える 2

13

あなたの問題は、列に保存された追加のミリ秒でした。

解決策は、分割してそれらを削除することでした;-)

SELECT * FROM MyTable WHERE date(datetime(DateColumn / 1000 , 'unixepoch')) = date('now') 
于 2013-02-05T14:59:36.133 に答える
2

クエリを最速にするために範囲を使用します。比較するために変換することは避けたいと思います。

SELECT *
FROM   My Table
WHERE  DateColumn BETWEEN JulianDay('now') AND JulianDay('now','+1 day','-0.001 second')

注:SQLiteがネイティブでサポートしているJulianDatesとして日付が保存されていないことに気づきました。概念は同じですが、日付を保存する形式に関係なく、独自の変換関数を使用する必要があります。

于 2013-02-05T14:30:29.913 に答える