2016-07-05 7 views
0

私はSQLiteデータベースを持っています。今日の後に期限(DATETIME、typeof(期限)がテキストを返します)ですべての行を取得しようとしています。ここでは、今日の日付と照合期限です:SQLiteの日付比較奇妙

sqlite> SELECT deadline, Date('now') FROM confs; 
2016-08-28|2016-07-05 
2016-06-30|2016-07-05 
... 

を今、私は今日を超えて日付を選択しようとした場合:

sqlite> SELECT deadline FROM confs WHERE deadline > Date('now') 
sqlite> 

行が戻されませんでした。一方、

sqlite> SELECT deadline, Date('now') FROM confs WHERE deadline < Date('now'); 
2016-08-28|2016-07-05 
2016-06-30|2016-07-05 
... 

私が試してみた:

  • はtext型の "期限" を持つテーブルを作成する - ノー成功、同じ結果。
  • 締め切り日または日付( 'now')をテキストとしてキャスティングします。成功しません。同じ結果です。
  • 締め切りと日付( 'now')の両方をテキストとしてキャスト - 成功しません。同じ結果です。
  • WHERE期限> '2016-07-05 'を使用すると成功しません。同じ結果です。
  • TimBiegelsenの提案を使用:デッドライン> STRFTIME( '%Y-%m-%d'、 'now') - 成功しません。

問題は締め切りのタイプに関連していると思いますが、それは推測です。

目標は、日付を含む1つの列を持つテーブルを作成し、Date( 'now')の後の日付を選択できるようにすることです。私は間違って何をしていますか?

+0

@TimBiegeleisen:DATETIME NOT NULLとして作成されました。 SELECT typeof(deadline)FROM confsが 'text'を返します。 –

+0

注: 'deadline = '2016-08-28';'は、行を返しません。その列。 –

+0

あなたの 'deadline'カラムは奇妙なフォーマットです。代わりに 'STRFTIME(deadline)'を使ってみてください。 –

答えて

0

よろしくお願いします。 データ入力エラーが発生したことがわかります。期限はスペースで始まります。