質問するログイン新規登録

回答編集履歴

5

追加

2017/06/12 01:04

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -2,4 +2,12 @@
2
2
  ```
3
3
  set @x:=20170611;
4
4
  select date_add(date_sub(@e,interval weekday(@e) day), interval (date_format(@d,'%u'))*7 day) from (SELECT @d:=@x,@e:=date_format(@d,'%Y0101')) t1;
5
- ```
5
+ ```
6
+ 2017年の23週の月曜日
7
+ ```sql
8
+ set @y:=2017;
9
+ set @x:=23;
10
+
11
+ select date_add(date_sub(@e,interval weekday(@e) day), interval @x*7 day) from (SELECT @e:=concat(@y,'0101')) t1;
12
+ ```
13
+

4

訂正

2017/06/12 01:04

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  2017年6月11日(日)の第23週の月曜日
2
2
  ```
3
3
  set @x:=20170611;
4
- select date_add(makedate(year(@d),case when @n=8 then 1 else @n end), interval (date_format(@d,'%u')-1)*7 day) from (SELECT @d:=@x,@n:=8-weekday(date_format(@d,'%Y0101'))) t1;
4
+ select date_add(date_sub(@e,interval weekday(@e) day), interval (date_format(@d,'%u'))*7 day) from (SELECT @d:=@x,@e:=date_format(@d,'%Y0101')) t1;
5
5
  ```

3

変更

2017/06/11 22:24

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  2017年6月11日(日)の第23週の月曜日
2
2
  ```
3
3
  set @x:=20170611;
4
- select makedate(year(@d),case when @n=8 then 1 else @n end + (date_format(@d,'%u')-1) * 7) from (SELECT @d:=@x,@n:=8-weekday(date_format(@d,'%Y0101'))) t1;
4
+ select date_add(makedate(year(@d),case when @n=8 then 1 else @n end), interval (date_format(@d,'%u')-1)*7 day) from (SELECT @d:=@x,@n:=8-weekday(date_format(@d,'%Y0101'))) t1;
5
5
  ```

2

変更

2017/06/11 15:35

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -1,4 +1,5 @@
1
1
  2017年6月11日(日)の第23週の月曜日
2
2
  ```
3
+ set @x:=20170611;
3
- select makedate(year(@d),case when @n=8 then 1 else @n end + (date_format(@d,'%u')-1) * 7) from (SELECT @d:='20170611',@n:=8-weekday(date_format(@d,'%Y0101'))) t1;
4
+ select makedate(year(@d),case when @n=8 then 1 else @n end + (date_format(@d,'%u')-1) * 7) from (SELECT @d:=@x,@n:=8-weekday(date_format(@d,'%Y0101'))) t1;
4
5
  ```

1

修正

2017/06/11 15:12

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -1,4 +1,4 @@
1
1
  2017年6月11日(日)の第23週の月曜日
2
2
  ```
3
- select date_sub(@d,interval weekday(date_add(date_format(@d,'%Y0101'),interval date_format(@d,'%u')*7 day)) day) from (SELECT @d:='20170611') t1;
3
+ select makedate(year(@d),case when @n=8 then 1 else @n end + (date_format(@d,'%u')-1) * 7) from (SELECT @d:='20170611',@n:=8-weekday(date_format(@d,'%Y0101'))) t1;
4
4
  ```