Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memilih tanggal 30 hari terakhir di MySQL bahkan tanggal tidak ada di mysql?

Dengan asumsi tabel contoh yang disederhanakan table1 dengan isi sebagai berikut

CREATE TABLE table1 (lastUpdated datetime);
INSERT INTO table1 (lastUpdated) VALUES ('2016-03-23');
INSERT INTO table1 (lastUpdated) VALUES ('2016-03-24');
INSERT INTO table1 (lastUpdated) VALUES ('2016-03-30');
INSERT INTO table1 (lastUpdated) VALUES ('2016-03-31');
INSERT INTO table1 (lastUpdated) VALUES ('2016-04-02');
INSERT INTO table1 (lastUpdated) VALUES ('2016-03-31');

Kemudian pernyataan MySQL berikut akan mengembalikan semua tanggal dalam 30 hari terakhir, dengan hitungan 0 di mana tidak ada entri yang ditemukan di table1 :

SELECT lastUpdated, count(*)-1 FROM (
    SELECT date(lastUpdated) as lastUpdated FROM table1 as t1
    UNION ALL 
    SELECT curdate() - interval a day AS lastUpdated FROM (
        select 0 as a union select 1 union select 2 union select 3 union
        select 4 union select 5 union select 6 union select 7 union
        select 8 union select 9 union select 10 union select 11 union
        select 12 union select 13 union select 14 union select 15 union 
        select 16 union select 17 union select 18 union select 19 union
        select 20 union select 21 union select 22 union select 23 union
        select 24 union select 25 union select 26 union select 27 union
        select 28 union select 29
    ) as t2
) as t3 GROUP BY lastUpdated;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException Indeks parameter di luar rentang (1> jumlah parameter, yaitu 0)

  2. Gabung kiri atau pilih dari beberapa tabel menggunakan koma (,)

  3. Kelompokkan Berdasarkan nilai RAND()

  4. Bagaimana cara menyimpan Karakter Emoji di Database MySQL

  5. Mengapa saya harus menggunakan kunci asing jika saya dapat menggunakan WHERE?