2012-05-13 5 views
1

나는 문제가있어서 혼란 스럽다. 나는 이벤트를위한 테이블을 가지고 있으며, 이벤트 테이블이 생성 된 날짜 시간의 타임 스탬프를 보유하는 컬럼이있다. 이 달, 지난 달 및 지난 달보다 2 달 전에 생성 된 모든 이벤트 (행)를 가져 오려고합니다. 기본적으로 4 개월입니다. 나는 따로 따로 보여주고 싶다. 나는 이번 달의 모든 행에 대해 datebase를 하나의 쿼리로 쿼리하고 다른 쿼리는 지난 달에 4 개월 동안 쿼리 할 수 ​​있다고 생각할 수있다. 문제는 내가 어떻게 할 수 있는지 모른다. mysql에 month() 함수가 있지만 잃어 버렸습니다. 어떻게 사용하는지 모르겠습니다.월 단위로 mysql 행을 얻는 방법

도움이 될 것입니다. 감사합니다

편집 : 테이블 구조는 이와 같습니다. 모든 도움을

Title | Uri | created 

Event | Event| 1337782223 
name | uri | 
....... 

편집 2

감사합니다 .. 는 나는이

SELECT * FROM `events` WHERE MONTH(FROM_UNIXTIME(created)) = $month; 

이 사용 :) ... 그것을 자신과 내 친구 구글과 시도 나를 위해 일하는 것, 난 그냥 나를 위해 PHP가 그게 더 쉽게 원하는 달을 전달합니다 ... LOL

귀하의 답변에 감사드립니다. 이 곳은 굉장합니다

+0

정확한 지난 달

select colum_name from table_name where month(table_field_name) = month ($thismonth) AND year(table_field_name) = year ($thismonth) Group By month(table_field_name); 

어떻게 결과를보고 싶습니까? –

+0

간단하고 싶습니다. 이번 달에 작성된 모든 행을 하나의 쿼리와 다른 쿼리에서 원합니다. 지난 달에 생성 된 모든 행을 4 개월 동안 원합니다. – Prashank

답변

0
Select * From your_table Group By Month(column_with_date); 

당신은 테이블에 타임 스탬프 열이 있어야합니다.

그렇지 않으면 항목을 삽입 할 때 정보를 복원 할 수 없습니다.

+0

지난 달에 대해 다음과 같이 사용할 수 있습니다. 선택 * From your table 월별 그룹화 (column_with_date) - 1; – Prashank

+0

예, 그러면 sth가 필요합니다. like 선택 * From your_table WHERE DATE_SUB (CURDATE(), INTERVAL 1 MONTH) <= column_with_date – cb0

0
$month = '5,4,3,2'; 
select colum_name from table_name where month(table_field_name) IN ($thismonth) Group By month(table_field_name) 

매달

$todayDate = date("Y-m-d"); 
$thismonth = strtotime($todayDate); 
$previous_month = mktime(0, 0, 0, date("m")-1, date("d"), date("Y")); 

에 대해 별도의 쿼리를 사용하는 경우이 하나를 시도하고 당신은 지난 달 그냥 할 수 마이너스 당월 번호의 예 -2, -3 ..... 수 있습니다

select colum_name from table_name where month(table_field_name) = month ($previous_month) AND year(table_field_name) = year ($thismonth) Group By month(table_field_name) 
+0

타임 스탬프에서 datetime으로의 일부 변환이 필요할 수 있지만 이와 같은 방법이 효과적입니다. –

+0

지난 4 개월 동안 이벤트가 필요합니까 ??? –

+0

나중에 한 쿼리와 다른 쿼리의 다른 한 달 – Prashank

관련 문제