2014-08-26 2 views
1

여기 뇌가 약간 얼어 붙어서 내 머리를 잡지 못합니다. 어제 오전 7시 30 분 이후에 동적으로 레코드를 제공하는 쿼리가 필요합니다. 어제 오전 7시 30 분 이후에 매일 같은 쿼리를 실행하여 모든 레코드를 가져 오려고합니다. 다른 트릭은 제가 실행중인 시간대가 서버 시간에서 8 시간 떨어져 있다는 것입니다. 나는 모든 구성 요소를 가지고있다. (나는 생각한다) 올바른 순서로 함께 모으고있다.MySQL : 어제 특정 시간 이후에 레코드 선택

date_sub(addtime(now(),'8:00'), interval 1 day) 

위의 내용은 정확히 24 시간 전이지만 어제는 07:30 이후입니다. 내가 이걸 어떻게 할 수 있는지 모든 단서? 미리 감사드립니다.

요르단

당신은 현재 날짜의 0시 0분 0초 얻을 curdate() 대신 now()로 사용할 수 있습니다
+0

을 사용할 수 있습니다 세션의 시간대를 변경합니다. 이것은 데이터를 타격하지 않습니다!?!? – Strawberry

답변

4

:

mysql> select date_sub(curdate(), interval 1 day); 
+-------------------------------------+ 
| date_sub(curdate(), interval 1 day) | 
+-------------------------------------+ 
| 2014-08-25       | 
+-------------------------------------+ 
1 row in set (0.00 sec) 

어제 : 어제

mysql> select now(); 
+---------------------+ 
| now()    | 
+---------------------+ 
| 2014-08-26 06:21:03 | 
+---------------------+ 
1 row in set (0.00 sec) 

mysql> select curdate(); 
+------------+ 
| curdate() | 
+------------+ 
| 2014-08-26 | 
+------------+ 
1 row in set (0.00 sec) 

지금 우리가 선택할 수 있습니다 7:30에 :

mysql> select date_add(date_sub(curdate(), interval 1 day), interval '7:30' HOUR_MINUTE); 
+----------------------------------------------------------------------------+ 
| date_add(date_sub(curdate(), interval 1 day), interval '7:30' HOUR_MINUTE) | 
+----------------------------------------------------------------------------+ 
| 2014-08-25 07:30:00              | 
+----------------------------------------------------------------------------+ 
1 row in set (0.00 sec) 
01 23,516,

내가 그것을 얻을하지 않습니다 당신이

mysql> set time_zone = '+00:00'; 
+0

정말 고마워요 !! 그건 멋진 솔루션이고 time_zone에 대해서도 몰랐습니다. 보너스! –

관련 문제