날짜가 DateTime보다 크거나 같은 라라벨 웅변
날짜 열이 현재 시간보다 높거나 같은 모델에서 관계형 데이터를 가져오려고 합니다.
날짜 열 형식은 Y-m-d H:i:s입니다.
제가 하려는 것은 앞으로 Y-m-d H:i:s가 있는 모든 줄을 잡으려는 것입니다.
예: 날짜를 2017-06-01, 시간을 09:00:00로 가정하고 날짜가 있는 행과 시간이 미래인 행을 모두 받고 싶습니다.
현재 제 코드는 이렇게 보이고 거의 작동 중이지만 날짜가 현재인 행을 잡지 못합니다.
public function customerCardFollowups() {
return $this -> hasMany('App\CustomerCardFollowup', 'user_id') -> whereDate('date', '>', Carbon::now('Europe/Stockholm')) -> orderBy('date', 'asc') -> take(20);
}
내가 뭘 잘못하고 있는 거지?
당신이 사용할 필요가 있는 것 같네요.>=
, 예를 들어 다음과 같습니다.
->whereDate('date', '>=', Carbon::now('Europe/Stockholm'))
여기서 다음을 사용할 수 있습니다.
->where('date', '>=', date('Y-m-d'))
사용.whereDate
날짜만 비교하고 시간은 무시합니다.따라서 솔루션은 최소 하루 후에 데이트하는 레코드를 제공하고 같은 날에 있지만 나중에 제공되는 레코드는 포함되지 않습니다.
사용하는 경우>=
다른 답변에서 제시된 바와 같이, 당신은 현재 날짜로부터 시작하는 기록과 결정된 시간 이전의 기록을 얻을 것입니다.
이것을 위한 한가지 해결책은 MySQL 함수를 사용하여 비교하는 것입니다.whereRaw
. 코드상 날짜 조건은 다음과 같습니다.
-> whereRaw("date > STR_TO_DATE(?, '%Y-%m-%d %H:%i:%s')" , Carbon::now('Europe/Stockholm')->format('Y-m-d H:i'));
코드에서는 원하는 포맷을 사용할 수 있는 특정 포맷에 맞게 Carbon date의 포맷을 변경하여 STR_에 동일한 포맷을 넣었습니다.TO_DATE 함수.
Laravel의 테스트 케이스:
$this->assertDatabaseHas('my_table', [
'name' => $name,
[ 'updated_at', '>=', $updatedAt ] // $updatedAt is a Carbon object
]);
언급URL : https://stackoverflow.com/questions/44266337/laravel-eloquent-where-date-is-equal-or-greater-than-datetime
'programing' 카테고리의 다른 글
각도가 있는 Adobe Edge Animate 사용JS 및 각도UI 라우터 (0) | 2023.10.26 |
---|---|
Oracle: 자동 증분 ID 열을 사용하여 보기 생성 (0) | 2023.10.26 |
Angular 뒤에 코드JS애니메이션이완료되었습니다. (0) | 2023.10.26 |
angularjs - 확장 재귀적 (0) | 2023.10.26 |
stdout 및 stdin 파일 설명자를 닫은 후 다시 열기 (0) | 2023.10.26 |