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

MYSQL:Bagaimana saya bisa menemukan 'tanggal Senin lalu' (Masalah kinerja)

Jika Anda tidak menggunakan MySQL kuno, Anda dapat membungkusnya dalam fungsi yang tersimpan.

CREATE FUNCTION `LastMonday`() RETURNS DATETIME    
  RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;

lalu panggil

select LastMonday() as LastMonday

Pembaruan:

Jika Anda mengalami masalah kinerja, Anda dapat mempertahankan nilai dalam variabel sesi. Dengan begitu Anda bisa yakin bahwa itu hanya akan dihitung sekali.

set @LastMonday=LastMonday();
select @Lastmonday; 

(dalam kueri sederhana ini tentu saja tidak ada bedanya...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menghapus berbagai catatan sekaligus di MySQL?

  2. Tampilan Tab Silang di mySQL?

  3. Mencari yang setara dengan dictcursor di flaskext.mysql

  4. MySQL:Banyak tabel atau banyak database?

  5. Apakah ada cara di MySQL untuk membalikkan bidang boolean dengan satu permintaan?