2017-08-23 11 views
1

私はFirefoxのデータベースplaces.sqliteから今日訪問したURLを選択します動作します。 最初の試みとして、私はこれを達成するために使用されるクエリが(オペレータ>を参照)であった。このクエリへ比較はinconsistenly

SELECT datetime(moz_places.last_visit_date/1000000,'unixepoch'), moz_places.title 
FROM moz_places 
WHERE moz_places.last_visit_date/1000000>strftime('%s','now','start of day') 
ORDER BY moz_places.last_visit_date DESC; 

答えは何もありません。

は、それから私は、(事業者->を参照)ほとんど同じである、これにクエリを変更:

SELECT datetime(moz_places.last_visit_date/1000000,'unixepoch'), moz_places.title 
FROM moz_places 
WHERE moz_places.last_visit_date/1000000-strftime('%s','now','start of day')>0 
ORDER BY moz_places.last_visit_date DESC; 

その後、答えは正しいです。

そこに誰もが、他のではないで1つのクエリで、なぜ>作品を知っていますか?

答えて

0

strftime()関数は常に文字列を返し、文字列は常に数よりも多い比較します。

加減算付きの文字列を使用しようとすると、自動的に数字に変換されるので、結果はlast_visit_date-strftime(...)です。

あなたが元のクエリ内の関数呼び出しを変更することができます:あなたが入力して保存したい場合は、

CAST(strftime('%s', ...) AS NUMBER) 

か、あまり目立た:

strftime('%s', ...)+0