본문 바로가기
MySql

MySQL 주의 첫째 날과 마지막 날 (또는 월, 분기 또는 연도) 찾기

by 베이스 공부 2021. 1. 13.
반응형

가능한 중복 :


주어진 요일에 대한 주, 월, 분기 및 연도의 첫 번째와 마지막 날을 얻으려고합니다.

예를 들어 2013-01-16 일의 경우 첫 날과 마지막 날은 다음과 같습니다.

  • Week - It would be 2013-01-13 and 2013-01-19 (assuming Sunday to Saturday)
  • Month - It would be 2013-01-01 and 2013-01-31
  • Quarter - It would be 2013-01-01 and 2013-03-31
  • Year - It would be 2013-01-01 and 2013-12-31

내 목적은 WHERE myDate BETWEEN 2013-01-13 AND 2013-01-19 에 포함하는 것입니다.

표준 MYSQL 함수 솔루션 (저장 프로 시저 등은 아님) 또는 PHP 솔루션 모두 허용됩니다. 감사합니다


주어진 분기의 첫날과 마지막 날에 대한 솔루션입니다.

$q=ceil($date->format("n")/3);
$months_start=array('January','April','July','October');
$months_end=array('March','June','September','December');
$m_start=$months_start[$q-1];
$m_end=$months_end[$q-1];
$modifier='first day of '.$m_start.' '.$date->format('Y');
$date->modify($modifier);
echo $modifier.': '.$date->format('Y-m-d').'<br>';
$modifier='last day of '.$m_end.' '.$date->format('Y');
$date->modify($modifier);
echo $modifier.': '.$date->format('Y-m-d').'<br>';

 

해결 방법

 


$date = strtotime('2013-01-16');

// First/last day of week 
$first = strtotime('last Sunday');
$last = strtotime('next Saturday');


$date = new DateTime('2013-01-16');

// First/last day of month
$first = $date->modify('first day of this month');
$last = $date->modify('last day of this month');

1 년의 첫 번째 / 마지막 날을 가져 오는 것은 조금 더 까다로울 수 있습니다.

// Get date
$date = new DateTime('2013-01-16');

// Format to get date
$year = $date->format('Y');

// Get first day of Jan and last day of Dec
$first = $date->modify("first day of January $year");
$last = $date->modify("last day of December $year");

 

참조 페이지 https://stackoverflow.com/questions/14415914

 

 

반응형

댓글