2012-11-08 3 views
1

지난 7 일 동안 레코드를 가져 오려고합니다. 내가 절 같은unixtimestamp (bigint) 열에 대해 where 절에서 curdate()를 사용하는 방법

where time between curdate() and curdate() - INTERVAL 7 DAY 

where from_unixtime(time,'%yyyy-%mm-%dd') between curdate() and curdate() - INTERVAL 7 DAY 

의 다양한 화신을 시도

select from_unixtime(time,'%m/%d/%y') as fdate, from_unixtime(time,'%h:%m:%s') as ftime 
from mdl_log 
where from_unixtime(time,'%y-%m-%d') between curdate() and curdate() - INTERVAL 7 DAY 

: 이것은 내가 작업에 도착 시도하고 내 선택 성명

where date(time) between curdate() and curdate() - INTERVAL 7 DAY 

select curdat e() - 날짜가이 형식으로 표시됩니다. 2012-11-08

답변

2

마지막 성육신과 거의 함께했습니다. 그러나 사과와 사과를 비교해야합니다. time의 정수인이므로 MySQL date/time functions으로 변환해야 사용할 수 있습니다. 사용 사례 감안할 때

WHERE DATE(FROM_UNIXTIME(time)) between CURDATE() and CURDATE() - INTERVAL 7 DAY 

, 당신은 정말에만 FROM_UNIXTIME() 필요합니다 응답

WHERE FROM_UNIXTIME(time) between CURDATE() and CURDATE() - INTERVAL 7 DAY 
+0

흠, 감사합니다. 나에 대한 제안 중 하나를 사용하여 빈 결과 집합을 얻고있다. FROM_UNIXTIME (시간, '% yyyy- % mm- % dd')도 추가하려고했습니다. – jamesTheProgrammer

+1

날짜 (from_unixtime (시간, '% Y- % m- % d'))> 날짜 (CURDATE() - 간격 7 일) – jamesTheProgrammer

+0

이 문장을 사용하여 끝났습니다. 나는 아직도 당신이 그 요점을 놓치고 있다고 생각합니다. 필자가 제공 한 두 예제 모두'time '이'BIGINT'인 경우에 작동해야합니다. –

관련 문제