SQL이 주어진 것보다 오래된 데이터를 반환하는 것을 방지하는 가장 빠른 방법

StackOverflow https://stackoverflow.com/questions/550828

  •  23-08-2019
  •  | 
  •  

문제

나는 다른 것들에 대한 다양한 테이블을 가진 매우 복잡한 데이터베이스를 가지고 있으며, 모든 것은 타임 스탬프가 있습니다 (ymd h : m : s 형식)

예를 들어 일주일 전에 SQL 쿼리를 특정 시간대의 결과로 제한 할 수있는 방법이 있습니까?

필요하다면이 타임 스탬프를 Unix로 변환 할 수있는 기능이 있습니다.

sqlToUnix($date);
//returns $unixTime

예를 들어

mysql_query(SELECT id FROM entries WHERE entries.date >= $formattedDateString);

감사!

데이터베이스 날짜가 형식이라는 것을 알림 : 2009-02-15 08:47:45

도움이 되었습니까?

해결책

그것은 간직 간직으로 완전히 가능합니다 (MySQL 4.0 이후) :

mysql_query("SELECT id FROM entries WHERE entries.date BETWEEN 'Y-M-D h:m:s' AND 'Y-M-D h:m:s'");

또한 현재 날짜가 1 주일 전에 타임 스탬프를 계산하려면 MySQL 온라인 문서.

다른 팁

저는 MSSQL 사용자 직접이지만 온라인을보고 MySQL 5.0에 대한 유용한 정보 몇 가지를 볼 수 있습니다 ...

커데이트 ()
date_add ()

이것으로 당신은 Where 절을 만들 수 있어야합니다.

WHERE
   <field> >= date_add(curdate(), INTERVAL -7 DAY)

다른 곳에서 언급했듯이 필드가 문자열 인 경우 사용 날짜로 변환하십시오. str_to_date ()

예, 당신이 쓴 것처럼 당신은 당신의 출력에 대한 제한보다 더 크고 낮을 수 있습니다. 문제는 어디에 있습니까?

필드가 타임 스탬프/DateTime 필드가 아니라 문자열 인 경우 MySQL 함수 str_to_date ()를 사용하십시오.http://dev.mysql.com/doc/refman/5.1/en/date-andtime-functions.html)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top