2014-04-09 5 views
-1

03/09/2014 저장 전에 datetime이 떨어지면 5 시간을 빼고 03/09/2014이면 4 시간을 빼야합니다. 그것은 지금까지 가지고있는 사례 진술에 있습니다. 그러나 그것은 단지 두 번째 때만 작동하고 두 번째 때는 작동하지 않습니다.어떻게하면 일일 절약 5 시간을 빼기 위해 case 문을 작성하고 이후에 절약 할 경우 4 시간을 뺍니다.

max(
    Case 
     when aa.status_id=10 and aa.created_at <'3/09/2014' 
      then DATE_SUB(aa.created_at, interval 4 HOUR) 
     when aa.status_id=10 and aa.created_at >'3/09/2014' 
      then DATE_SUB(aa.created_at, interval 4 HOUR) 
     else null 
    end)as form_Receieved 
+0

나는 오타가 있습니다. 2014 년 3 월 5 일 이상입니다. 5 시간 이상 03/09/2014는 4 시간입니다. – user3115719

+0

두 경우 모두 4를 뺀 것이므로 올바른 결과가 표시되지 않을 수 있습니다. –

+0

아니, 나는 그것을 고쳤다. 그것은 오타였다. – user3115719

답변

0

처음으로 4 시간을 뺀 것입니다! 작동하지 않을 경우 datetime이어야합니다.

초입니다. datetime 열과 날짜를 비교합니다. 그것을 datetime으로 변환해야합니다. 또는 열 형식과 동일하게 만드십시오.

 when aa.status_id=10 and aa.created_at <'2014-03-09 00:00:00' 

테이블 및 열 구조를 보여주지 않아서 created_at가 datetime 열이라고 가정합니다.

+0

형식으로 변경했는데 작성했습니다.> 작성했습니다.> 03/09/2014 00:00:00 – user3115719

+0

죄송합니다. 한 시간도 안 남았습니다. 14 대신 13이 나옵니다. – user3115719

+0

if 당신은 샘플 데이터를 게시하고 결과를 원합니다. 훨씬 나아질거야. –