2012-06-22 2 views
1

나는 MySQL 데이터베이스에 행을 가지고 있으며 각각은 타임 스탬프 값을 가지고있다. (ie 1340296188)특정 날짜의 모든 타임 스탬프를받는 방법은 무엇입니까? PHP

지난 7 일 동안 모든 항목을 찾으려고합니다. 나는 모든 지난 7 일 이내에 무언가 같이 찾기 위해 쿼리를 수행하는 방법을 알고

$lastweek = time() - 604800; 
$results = mysql_query("SELECT * FROM table WHERE timestamp > $lastweek"); 

는 그러나, 나는 별도로 매일을 얻을 수 있어야합니다. 이 쿼리는 어떻게 작성합니까? 나는 위의 결과에서 특정 날짜를 찾는 방법을 모릅니다.

답변

2

이미 꽤 많은 거기를; $results의 타임 스탬프 필드를 구문 분석하면됩니다.

하루는 (60 * 60 * 24) 초이므로 각 행의 타임 스탬프 필드를 86400으로 나눌 수 있고 정수로 바꿀 수 있으며 결과는이 항목이 발생한 일 수입니다. 데이터 집합의 각 행에 대해

는 :

$daysAgo = int($row["timestamp"]/86400); 
4

나는 이것을 할 방법이 하나 더 있다고 생각한다. 여기에 하나 :

SELECT * 
FROM table 
WHERE timestamp > CURRENT_DATE - INTERVAL 1 WEEK 
GROUP BY DAY(timestamp) 
+0

내가 일주일 동안 모든 결과를 조회하려고 아니에요, 나는 그렇게 할 수 있습니다. 나는 모든 결과를 하루 하루에 나누려고 노력하고 있습니다. – JROB

+0

'GROUP BY'가 처리해야합니다. 시험되지 않은 업데이트 *가 작동해야합니다. –

0

FROM_UNIXTIME 기능을 사용하여 UNIX 타임 스탬프를 다시 datetime으로 변환 할 수 있습니다. DATE_FORMAT 기능을 사용하여이 날짜 시간을 형식화 할 수 있습니다. 당신이 그룹에 원하는 경우

SELECT columns, i, need, DATE_FORMAT(FROM_UNIXTIME(timestamp), '%Y-%m-%d') AS `date` 
FROM table 
WHERE timestamp > 1339700400 

날짜별로 결과는 GROUP BY 절 추가 :

GROUP BY `date` 
관련 문제