2013-03-19 4 views
1

오늘의 생일을 반환하려고합니다. 이것은 내가 지금 당장 가지고있는 것입니다. 그러나 나는 진술서를 입력하기 위해 1 개월과 1 개월을 움켜 잡아야합니다. 현지 시간에 잡을 수 있을지는 몰랐지만 효과가 없었습니다. 모든 제안을 부탁드립니다.DBIx :: Class and Searching

sub author_birth { 
    my ($self) = @_; 
    my ($day,$month) = (localtime())[3..4]; 
    my $author_result = $self->search_like(
     { 
      birth => '%03-20' 
     }, 
     { 
      select => [ 
       'id', 
       'complete_name', 
      ], 

      #result_class => 'DBIx::Class::ResultClass::HashRefInflator' 
     } 
    ); 

    my @author_ids =(); 
    while (my $row = $author_result->next) { 
     push @author_ids, $row->id; 
    } 

    return $self->get_author_info_by_id(\@author_ids); 

} 
+0

데이터베이스의 날짜에 포함되는 선행 0이 없기 때문에'$ day' 및'$ month'과 함께 작동하지 않습니다. 가장 좋은 해결책은 (이미 작업 한 것처럼) Time :: Piece를 사용하는 것입니다. –

+0

설명 주셔서 감사합니다. 어제까지 Time :: Pieces에 대해서조차 알지 못했습니다. 건배. –

답변

2

나는 이런 식으로 일을 끝냈다.

my ($self) = @_; 
my $conc = '%'; 
my $datetime = Time::Piece->new->strftime('%m-%d'); 
my $date = $conc . $datetime; 
my $author_result = $self->search_like(
    { 
     birth => $date, 
    }, 
    { 
     select => [ 
      'id', 
      'complete_name', 
     ], 

     #result_class => 'DBIx::Class::ResultClass::HashRefInflator' 
    } 
); 
관련 문제