반응형
지난달의 첫날과 마지막 날을 얻는 가장 좋은 방법은?
지난달의 첫날과 마지막 날을 얻을 수 있는 가장 좋은 방법을 찾고 있어요.지난달 통계를 얻기 위한 SQL 쿼리 작성에 사용합니다.
이것이 최선의 방법이라고 생각합니다만, 보다 최적화되어 있지만, 보다 포괄적이지는 않습니다.누구라도 같은 일을 할 수 있는 다른 방법이 있습니까?
$month_ini = date("Y-m-d", mktime(0, 0, 0, date("m", strtotime("-1 month")), 1, date("Y", strtotime("-1 month"))));
$month_end = date("Y-m-d", mktime(0, 0, 0, date("m", strtotime("-1 month")), date("t", strtotime("-1 month")), date("Y", strtotime("-1 month"))));
감사합니다!!
PHP 5.3에서는,DateTime
클래스:
<?php
$month_ini = new DateTime("first day of last month");
$month_end = new DateTime("last day of last month");
echo $month_ini->format('Y-m-d'); // 2012-02-01
echo $month_end->format('Y-m-d'); // 2012-02-29
전달 마지막 날:
date("Y-m-d", mktime(0, 0, 0, date("m"), 0));
전달 첫째 날:
date("Y-m-d", mktime(0, 0, 0, date("m")-1, 1));
MySQL 및 PHP 스크립트에서 사용하는 짧고 간단한 것은 다음과 같습니다.
echo date('Y-m-d', strtotime('first day of last month'));
echo date('Y-m-d', strtotime('last day of last month'));
MySQL 사용 예:
$query = $db->query("SELECT * FROM mytable WHERE 1 AND mydate >= '".date('Y-m-d', strtotime('first day of last month'))."'");
MySQL 쿼리를 위해 이 작업을 수행하는 경우 MONTH 함수 사용을 고려해 본 적이 있습니까?
SELECT [whatever stats you're after] FROM table
WHERE MONTH(date_field) = 12 and YEAR(date_field) = 2011
이게 12월 통계입니다.성능 문제가 발생하기 시작하고 기록 데이터가 변경되지 않는 경우 데이터를 집계 테이블로 정규화할 수 있습니다(예: 매일/시간/월 등 필요한 최소한의 증분값으로 롤업).
MySQL에서 다음을 수행할 수 있습니다.
WHERE `DateAndTime` >= '2012-02-01 00:00:00'
AND `DateAndTime` < '2012-03-01 00:00:00'
mysql이 날짜를 처리하도록 해
데이터베이스가 할 수 있는 일이라면, 그대로 해 주세요.
다음과 같습니다.
mysql_query("set @last_day=last_day(now()-interval 1 month),@first_day=(@last_day-interval 1 month)+interval 1 day");
$result=mysql_query("select * from `table` where (`date` between @first_day and @last_day)");
가장 좋은 점은 해가 바뀌어도 효과가 있다는 것입니다.
데이터베이스 시간대를 php와 일치하도록 변경하는 것만 기억하십시오.
언급URL : https://stackoverflow.com/questions/9735604/the-best-way-to-get-the-first-and-last-day-of-last-month
반응형
'programing' 카테고리의 다른 글
기능성 데코레이터를 만들고 어떻게 묶어야 하나요? (0) | 2022.10.06 |
---|---|
로컬 호스트에서의 XAMPP에서의 MySQL 루트 패스워드 리셋 (0) | 2022.10.06 |
C#의 DateTime을 yyy-MM-dd 형식으로 변환하여 MySql DateTime 필드에 저장합니다. (0) | 2022.10.06 |
MySQL datetime 필드 및 여름 시간 - "추가" 시간은 어떻게 참조합니까? (0) | 2022.10.06 |
Larabel에서의 MariaDB JSON 지원 (0) | 2022.10.06 |