2つの日付の間に最初の日曜日を取得するにはどうすればよいですか? 私はmytableは唯一の2つのフィールド(dt_fromとdt_to)mysqlクエリは2つの日付の間の第1の特定の日を取得します
dt_from = '2016-08-6';
dt_to = '2016-08-19';
SELECT firstsunday FROM myTable BETWEEN dt_from AND dt_to;
2つの日付の間に最初の日曜日を取得するにはどうすればよいですか? 私はmytableは唯一の2つのフィールド(dt_fromとdt_to)mysqlクエリは2つの日付の間の第1の特定の日を取得します
dt_from = '2016-08-6';
dt_to = '2016-08-19';
SELECT firstsunday FROM myTable BETWEEN dt_from AND dt_to;
どのようにする前に確認するために、いくつかの検証を追加することができますか?
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;
はこれを試してみる:
SELECT dt, DAYNAME(dt) as day
FROM myTable WHERE dt BETWEEN date1 AND date2
ORDER BY dt
WHERE day = "Sunday"
LIMIT 0,1
あなたのスピードレスポンスのために、こんにちは。あなたの現在のテーブル設定を複製するために私の編集者が編集しました。 (私はdtフィールドを持っていません) –
は、あなたが任意の王をたくないので、あなたが唯一の日付範囲を取得するには、DBを訴える必要があると仮定クエリ。
<?php
echo date('m/d/Y', strtotime('next Sunday', strtotime('2016-08-6')));
あなただけの後の日付自体から最初の日曜日を得ることについて、あなたの終了日
あなたの返信のためにこんにちは、thnxが、私は直接クエリからそれを取得したい –
ありがとう、それは非常にうまく動作します。 –
@Strawberry私は答えを更新しました。しかし、私はそれを短縮する方法はまだ分かりません。 –
どのような創造的な解決策。 +1 – BeetleJuice