2013-07-20 3 views
1

과 비교하면 datetime 유형을 비교할 수 있습니까? 예 : 날짜 1 : 날짜돼지의 datetime을 돼지 11의

필터 조건을 갖는다 : 날짜 1> = TODATE를 ('1999-01-01')

이 비교 복귀 정확한 결과는 무엇입니까?

답변

13

날짜 비교는 수치 비교로 간주 할 수 있습니다. 예컨대 : ToDate에 전달

cat date1.txt 
1999-01-01 
2011-03-19 
2011-02-24 
2011-02-25 
2011-05-23 
1978-12-13 

A = load 'date1.txt' as (in:chararray); 
B = foreach A generate ToDate(in, 'yyyy-MM-dd') as (dt:datetime); 
--filter dates that are equal or greater than 2011-02-25: 
C = filter B by DaysBetween(dt, 
     (datetime)ToDate('2011-02-25', 'yyyy-MM-dd')) >=(long)0; 

dump C; 
(2011-03-19T00:00:00.000+01:00) 
(2011-02-25T00:00:00.000+01:00) 
(2011-05-23T00:00:00.000+02:00) 

사용자 정의 형식 패턴은 자바의 SimpleDateFormat 규칙을 따른다.
예를 에 대한 D는 올해에 날을 의미하지만, D날을 의미, 대문자와 소문자를 조심해. 이로 인해 chararray에서 datetime으로 부적절한 날짜 변환이 발생할 수 있습니다.

또는 chararray 날짜가 ISO 형식 인 경우 Piggybank의 UDF를 사용할 수도 있습니다.