2014-02-11 2 views
0

저는 MySQL 데이터베이스를 처음 사용합니다. Excel에서는 날짜 셀을 살펴본 다음 그 시즌에서 데이터 행의 상태를 표시하는 수식이 있습니다.배열/수식에서 MySQL의 계산 된 열

나는 그것이에 속하는 배열에서 값 경우 확인하려면 월과 일에 보이는이 공식 사용 Excel에서

:

=LOOKUP(TEXT([DATE_CELL],"mmdd"),{"0101","0321","0621","0922","1221";"Winter","Spring","Summer","Autumn","Winter"}) 

어떤 방법 뷰 또는 태그 이것은에 설치에 거기를 테이블을 MySQL 자체로 갱신하려면 많은 것을 가져 주셔서 감사합니다.

답변

1

나는이 같은 함수를 만들 것입니다 :

CREATE DEFINER = 'root'@'localhost' FUNCTION `getSeason`(P_date DATE) 
    RETURNS varchar(10) CHARSET latin1 
    DETERMINISTIC 
    CONTAINS SQL 
    SQL SECURITY DEFINER 
    COMMENT '' 
BEGIN 
DECLARE v_season VARCHAR(10); 
DECLARE v_month integer; 
DECLARE v_day integer; 
select date_format(P_date,'%m'),date_format(P_date,'%d') into v_month,v_day; 
if (v_month<3 or (v_month=3 and v_day<21)) then 
    set v_season="Winter"; 
else if (v_month<6 or (v_month=6 and v_day>=21)) then 
    set v_season="Spring"; 
else if (v_month<9 or (v_month=9 and v_day>=21)) then 
    set v_season="Summer"; 
else if (v_month<12 or (v_month=12 and v_day<=21)) then 
    set v_season="Autumn"; 
else 
set v_season="Winter"; 
end if; 
end if; 
end if; 
end if; 
    RETURN v_season; 
END; 

을 그리고 당신의 WHERE 절에 함수를 사용 시즌과 같은 getSeason (myDateField)

+0

WOW 선택 where getSeason(myDaeField)='Winter' Or in your select : - 더 기술적 인 내가 상상했던 것보다 내가 감사 너는 너의 모든 노력을 위해 대단히 노력하고 오늘 저녁에 이것을 줄 것이다. 0) – Palendrone

+0

그것이 효과가 있다면, 답을 표시하여 나중에 방문한 사람들이 그것을 알았다. (그리고 나는 어떤 보상을 받는다.) –