특정 월의 특정 요일의 개수를 알고 싶을 때의 쿼리. (mysql)

특정 월(예를 들면 2014년 4월)에 특정 요일(예를 들면 화요일)이 몇번 있는지 알고 싶을 때 사용하는 쿼리를 작성해 보았다.

우선 결론부터 적으면 아래와 같이 사용하면 된다.

set @month = ‘2014-04-01’;
set @nweek = 4;

SELECT FLOOR((DATEDIFF(LAST_DAY(@month), @month) + 1) / 7) +
IF((IF(@nweek < DAYOFWEEK(@month), @nweek+7, @nweek) – DAYOFWEEK(@month)) < (DATEDIFF(LAST_DAY(@month), @month) + 1) % 7, 1, 0)

이상의 쿼리를 어떻게 만들었는지 좀 더 분해해 보면 아래와 같다.

1. 해당월의 숫자를 7로 나누어 기본 숫자를 만들었다. 대부분 4가 된다.

FLOOR((DATEDIFF(LAST_DAY(@month), @month) + 1) / 7)

2. 찾고자 하는 요일의 숫자(4=수요일)이 해당 월의 첫번째 요일의 숫자(3=화요일)보다 작으면 찾고자하는 요일의 숫자에 7을 더해준다. 그리고, 해당 월의 첫번째 요일 숫자와 찾고자하는 요일의 숫자를 빼준다.

IF((IF(@nweek < DAYOFWEEK(@month), @nweek+7, @nweek) – DAYOFWEEK(@month))

3. 2에서 나온 값이 해달월의 숫자를 7로 나눈 나머지 보다 작으면 1에서 나온 값에 1을 더해주고, 아니면 0을 더한다.

IF((IF(@nweek < DAYOFWEEK(@month), @nweek+7, @nweek) – DAYOFWEEK(@month)) < (DATEDIFF(LAST_DAY(@month), @month) + 1) % 7, 1, 0)

이렇게 해서 결과를 얻을 수 있다.

Advertisements
카테고리:Programming 태그:, ,

인문학 콘서트 2! 읽으며…

인문학! 그건 인간을 탐구하는 학문이다. 인간은 생산과 창조를 하는데… 리빙을 위한 생산! 그리고 라이프를 위한 창조!를 하게되며 창조 작업을 통해 인간의 본질에 더 다가갈 수 있다.

우리는 편리를 추구한다. 피지스(physis)를 연구하고, 세미오시스(Semiosis)를 만들어내고, 노모스(Nomos)를 규정했다. 하지만, 이제 세미오시스나 노모스를 개개인의 인간이 판단하는게 아니라 우리가 생산한 기계나 시스템에 의해 예속되고, 이런 것을 기술 발전이라는 이름으로 포장하는 것 같다. 하지만, 다시 한번 이런 편리와 우리의 자유의지에 대해서 깊게 고민해 볼 필요가 있다고 생각된다. 단적인 예로, 현재(2014년) 국내에서 네이버의 영향력은 매우 크고, 또한 편리하지만 그 틀안에서 찾아가고, 그 이외의 경험을 두려워하는 경향이 있다. 그리고, 이를 이용해서 정보를 조작하여 우리의 생각이나 판단까지 조종하고 있는 실태는 매우 우려스럽기까지 하다. 좀 더 기술을 인간 중심으로 자유의지를 좀 더 확장하는 방식으로 표출할 수 있는 방법을 찾아보아야 겠다.

 

1월 9일 (2014)

– Lisp의 매크로 유사한 기능을 할 수 있도록 라이브러리. 필요한 것을 지정해서 사용하면 편리할 것 같기는 한데, 개발자가 바뀌는 경우 매우 고생할 수도 있겠다는 생각이 동시에 듭니다. – http://sweetjs.org

sweet.js 홈페이지 화면

 

 

– 레티나 디스플레이 대응에 대해서 잘 소개된 글이 있군요. 프론트엔드 개발시에 참고해야 겠습니다. :  레티나 대응

 

– 예전에 네트워크 프로그래밍 과목은 엄청나게 지루했던 기억이 납니다. 물론, 프로그래밍을 하는데 직접적인 영향이 없다고 생각할 수 있지만, 현재와 같이 모든 어플리케이션이 통신을 기반으로 동작하는 상황에서 기본이 되는 TCP/IP에 대한 이해도 필요하죠. : TCP/IP 네트워크 스택 이해하기

TCP/IP 네트워크 스택 이해하기 - 네이버 개발자 블로그

 

–  웹개발을 위한 30개의 CSS 샘플들. 막상 개발 과정에서는 찾아 사용하기 쉽지는 않지만, 평소 조금씩 봐 두면 나중에 언젠가는 써먹을 수 있겠죠. : 30개의 CSS샘플 모음

30 CSS Sample

 

– 몇가지 jQuery 플러그인 모음. 그리드나 프로그레스 바 등은 간단하게 가져다 사용할 수 있어 보이네요. : Best jQuery Plugins of 2013

Best jQuery Plugins of 2013

 

 

개발 뉴스 – 11월 12일 (2013)

– 안드로이드 개발에 사용할 수 있는 버튼과 폰트, 에디트 박스 등을 모아둔 부트스트랩. 향후 탭등도 제공한다니 간단한 기능성 앱 만들 때는 사용해 볼 만 할 듯. : http://goo.gl/n4e5Ll

이미지

– 디자이너를 위한 자바스크립트 소개자료라는데… 역시, 디자이너에게는 어려울 지도… : http://goo.gl/3vEpu1

이미지

– XCode project의  UI 요소를 계층적으로 보여주는 뷰어와 라이브러리. 코드 분석용으로 사용하면 좋겠군요. : http://goo.gl/5jSA7b

이미지

카테고리:Programming 태그:, , ,

최근 진행하는 프로젝트 통계 정보.

최근 업무 이외에 개인적으로 진행하고 있는 프로젝트인 ‘장바구니’ 모바일앱에 대한 사용통계이다.

우선, 간단하게 요일별과 물품별 사용 패턴을 기반으로 통계를 만들어 보았는데.

역시, 식료품의 비중이 높고, 수/목요일과 주말에 사용 빈도가 높은 것을 볼수 있었다.

관련 페이지 이동

장바구니 10월 사용 통계 - 요일별

장바구니 10월 사용 통계 – 요일별

카테고리:Mobile Platforms, Work

개발뉴스 : 5월 8일 (2013)

– CSS 애니메이션을 이용해서 페이지 전환을 보여주는 모음 : http://goo.gl/0J3ir
Page transition collection.

– CSS3를 이용한 30개의 버튼 예제들. : http://goo.gl/nBsSk
30개의 CSS3 버튼들

개발뉴스 : 4월 5일 (2013) – 식목일

– 웹에서 데이터를 스크랩하는 경우에 주로 python을 사용하곤 합니다. 저는 주로 httplib와 re를 사용하는데요. 이런 스크랩을 위한 beautiful-soap이라는 python 라이브러리가 있네요. 이걸 이용해서 스크린 스크랩하는 방법에 대한 아티클이 있습니다. : 아티클1 / 유사한 참고글

Greg Reda's Article cut

Greg Reda’s Article cut

– objective-c의 block을 jQuery스타일로 사용할 수 있도록 도와주는 라이브러리가 있어 소개합니다. : Github – MTControl
MTControl - Github

– 웹사이트에 활용하기 좋은 jQuery Plugin을 모아둔 아티클 두개. 리뷰해 두었다가 필요할 때 가져다 쓰면 좋겠네요. 특히, mojo와 filtrify가 깔끔해 보이네요. : 1. 10 jQuery Plug-in 2. small tools of javascript
filtrify, a kind of jQeury plug-in
imageloader.js

– python을 이용해서 간단하게 주변 wi-fi를 찾아 오는 방법에 대한 동영상 소개 아티클 : 1. 링크가기 2.관련 링크
MONITOR WI-FI CLIENT PROBES IN 10 LINES OF PYTHON

– 블로그를 만들기 위한 템플릿 작업을 하는 방법을 소개한 아티클 : HTML5 Template Design for blog
HTML5 Template for blog

– CSS3를 이용해서 디자인을 할 때 사용할 수 있는 좋은 튜토리얼. 샘플은 commerce용으로 카트와 아이템 보기 위한 패널을 디자인하는데, 테그와 CSS3에 대한 공부하기 좋은 자료. : 아티클 보기
스크린샷 2013-04-06 오후 2.19.15

%d 블로거가 이것을 좋아합니다: