2016-08-14 9 views

答えて

2

どのようにする前に確認するために、いくつかの検証を追加することができますか?

SELECT DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) from myTable as A; 

http://sqlfiddle.com/#!9/7fce5

日曜日は日付の間にされていない場合:

SELECT DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) as firstsunday from myTable as A where DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) between A.date_from and A.date_to; 

http://sqlfiddle.com/#!9/83d0f0/4

少し短い:

SELECT firstsunday from (SELECT A.date_from, A.date_to, DATE_ADD(A.date_from, INTERVAL (6 - WEEKDAY(A.date_from)) DAY) as firstsunday from myTable as A) as B where B.firstsunday between B.date_from and B.date_to; 

http://sqlfiddle.com/#!9/6adab3/1

+0

ありがとう、それは非常にうまく動作します。 –

+0

@Strawberry私は答えを更新しました。しかし、私はそれを短縮する方法はまだ分かりません。 –

+0

どのような創造的な解決策。 +1 – BeetleJuice

0

はこれを試してみる:

SELECT dt, DAYNAME(dt) as day 
FROM myTable WHERE dt BETWEEN date1 AND date2 
ORDER BY dt 
WHERE day = "Sunday" 
LIMIT 0,1 
+0

あなたのスピードレスポンスのために、こんにちは。あなたの現在のテーブル設定を複製するために私の編集者が編集しました。 (私はdtフィールドを持っていません) –

0

は、あなたが任意の王をたくないので、あなたが唯一の日付範囲を取得するには、DBを訴える必要があると仮定クエリ。

<?php 

echo date('m/d/Y', strtotime('next Sunday', strtotime('2016-08-6'))); 

あなただけの後の日付自体から最初の日曜日を得ることについて、あなたの終了日

+0

あなたの返信のためにこんにちは、thnxが、私は直接クエリからそれを取得したい –

関連する問題