2016-12-16 14 views
2

だから、私はstart_time,end_timedurationの列をテーブルに単純に入れます。そして、私は2つの日付の間にデータを照会したいと思います。2つの日付間のクエリの記録期間

ので、例えば日付が2016年12月5日 2016年12月8日にある(START_TIMEとEND_TIMEはエポックミリ秒です)。だから、このために私はまた、2016年12月4日に起動しますが、2016年12月5日の間に終了し、2016年12月8日に始まり、2016-12-にを終了レコードを含める必要が09。それらの日付の間のすべてのレコード。

正確なデータを照会するWHERE句の組み合わせを考え出すことができません。私は得ることができます

一部は、このようなものです:

SELECT * FROM my_table 
    WHERE 
     date(datetime(start_time/1000, 'unixepoch', 'localtime')) >= '2016-12-05' 
    AND 
     date(datetime(start_time/1000, 'unixepoch', 'localtime')) <= '2012-12-08' 

しかし、これはすべてのレコードが含まれていません。

答えて

2

あなたのロジックは、開始または終了のいずれかが範囲内にある場合、一致と見なされるべきであることを暗示しているようです。もしそうなら、次のクエリは動作するはずです:

SELECT * 
FROM my_table 
WHERE 
(
    date(datetime(start_time/1000, 'unixepoch', 'localtime')) >= '2016-12-05' AND 
    date(datetime(start_time/1000, 'unixepoch', 'localtime')) <= '2012-12-08' 
) OR 
(
    date(datetime(end_time/1000, 'unixepoch', 'localtime')) >= '2016-12-05' AND 
    date(datetime(end_time/1000, 'unixepoch', 'localtime')) <= '2012-12-08' 
) 
+0

それはそれは2与えられた日付 – kirtan403

+0

間そして私が欲しいいただきました!そのすべてのレコードが含まれますように見えます。私はちょうどこれをチェックします – kirtan403

+0

@ kirtan403ロジックには、間にある日付が含まれています。これらの日付は開始日と終了日が範囲内にありますが、条件は1つだけ必要です。 –

関連する問題