Mysql
 sql >> база данни >  >> RDS >> Mysql

Кой е най-лесният начин за добавяне на празни дати в sql резултати (в края на mysql или perl)?

Когато имате нужда от нещо подобно от страна на сървъра, обикновено създавате таблица, която съдържа всички възможни дати между две точки във времето и след това ляво се присъединявате към тази таблица с резултатите от заявката. Нещо като това:

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

В този конкретен случай би било по-добре да поставите малка проверка от страна на клиента, ако текущата дата не е previos+1, поставете някои допълнителни низове.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е разликата между MySQL и SQL?

  2. Речник на базата данни на DevOps за начинаещи в MySQL

  3. Въведение в SQL типове данни

  4. Изявление на SQL CASE

  5. Функция MySQL ATAN2() – Връща дъговата тангенс на 2 стойности