SQL 쿼리의 간단한 날짜 패딩
날짜가 포함된 MySQL 테이블에서 데이터를 가져올 때 반환된 데이터에 공백이 발생하는 것이 일반적입니다. . 이러한 공백을 메우고 완전한 날짜 순서를 생성하기 위해 사용할 수 있는 몇 가지 접근 방식이 있습니다.
MySQL 서버측 접근 방식
한 가지 효과적인 방법은 임시 테이블을 생성하는 것입니다. 원하는 날짜 범위에 걸쳐 있는 MySQL에서. 이는 다음 저장 프로시저를 사용하여 수행할 수 있습니다.
create procedure sp1(d1 date, d2 date) declare d datetime; create temporary table foo (d date not null); set d = d1 while d <= d2 do insert into foo (d) values (d) set d = date_add(d, interval 1 day) end while select foo.d, count(date) from foo left join table on foo.d = table.date group by foo.d order by foo.d asc; drop temporary table foo; end procedure
이 프로시저는 지정된 범위 내의 모든 날짜를 포함하는 foo라는 임시 테이블을 생성합니다. 그런 다음 원래 테이블을 foo로 조인하여 누락된 날짜를 0으로 채울 수 있습니다.
Perl 클라이언트측 접근 방식
Perl 클라이언트측 접근 방식
use DateTime; my $start_date = '2008-08-05'; my $end_date = '2008-08-07'; my $date_range = DateTime->range(start => $start_date, end => $end_date); for my $date in $date_range->each('day') { print CSV "$date,0\n"; }
MySQL 서버이거나 더 많은 유연성이 필요한 경우 Perl 클라이언트 측에서 날짜 패딩을 처리할 수도 있습니다. Date::Parse 또는 DateTime::Lite:
이 접근 방식은 지정된 날짜 범위를 반복하고 누락된 날짜를 0으로 인쇄합니다.
결론
특정 상황과 서버 기능에 따라 서버측 접근 방식과 클라이언트측 접근 방식 모두 옵션을 제공합니다. SQL 쿼리에서 빈 날짜를 채우는 데 사용됩니다. 서버 측 접근 방식은 더 효율적이지만 데이터베이스 액세스가 필요하고, 클라이언트 측 접근 방식은 더 뛰어난 유연성을 제공하지만 약간의 성능 오버헤드가 발생할 수 있습니다.위 내용은 내 SQL 쿼리에서 누락된 날짜를 어떻게 채울 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!