1

SQLite3 Create And Populate Table を使用したクエリで、日付範囲を適切に機能させることができません。

create table dates(myDate DATE);
insert into dates values('2012-10-1');
insert into dates values('2012-10-2');
insert into dates values('2012-10-3');
insert into dates values('2012-10-4');
insert into dates values('2012-10-5');
insert into dates values('2012-10-6');
insert into dates values('2012-10-7');
insert into dates values('2012-10-8');
insert into dates values('2012-10-9');
insert into dates values('2012-10-10');

クエリ:

select * from dates where myDate >= '2012-10-1' and myDate < '2012-10-31';

結果:

2012-10-1
2012-10-2
2012-10-3
2012-10-10

10-4 - 10-9 はどこですか?

次の間で使用すると、同じ結果が得られます。

select * from dates where myDate BETWEEN '2012-10-1' AND '2012-10-30';

終了日として「2012-11-1」を使用するようにクエリのいずれかを変更すると、正しく機能します。

どんな助けでも大歓迎です!

4

1 に答える 1

1

yyyy-mm-dd日付値は、固定幅フィールドの形式である必要があります。

SQLite にはネイティブの日付形式がないため、これが必要です。日付文字列を正しく比較するには、同じ意味を持つフィールドが常に文字列内の同じ位置にある必要があります。

于 2012-11-21T19:56:53.800 に答える