sql >> Databasteknik >  >> RDS >> Mysql

Vilket är det enklaste sättet att fylla på tomma datum i SQL-resultat (antingen i mysql- eller perl-änden)?

När du behöver något sådant på serversidan, skapar du vanligtvis en tabell som innehåller alla möjliga datum mellan två tidpunkter, och sedan går du till den här tabellen med frågeresultat. Något så här:

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

I det här specifika fallet skulle det vara bättre att sätta en liten bock på klientsidan, om det aktuella datumet inte är previos+1, sätt några tilläggssträngar.



  1. Anslut iPhone-appen till PostgreSQL med Libpq

  2. Dataanalysguide:Det är dags att utmärka sig genom att använda Excel!

  3. BESTÄLLNING AV Alias ​​fungerar inte

  4. Hur man installerar SQLcl på en Mac