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

Buat bidang tanggal dari hari, bulan, tahun di MySQL

Bila Anda memiliki nilai integer untuk tahun, bulan, dan hari, Anda dapat membuat DATETIME dengan menggabungkan MAKEDATE() dan DATE_ADD(). MAKEDATE() dengan hari konstan 1 akan memberi Anda DATETIME untuk hari pertama tahun tertentu, dan kemudian Anda dapat menambahkannya ke bulan dan hari dengan DATE_ADD():

mysql> SELECT MAKEDATE(2013, 1);
+-------------------+
| MAKEDATE(2013, 1) |
+-------------------+
| 2013-01-01        |
+-------------------+

mysql> SELECT DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH);
+---------------------------------------------------+
| DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH) |
+---------------------------------------------------+
| 2013-03-01                                        |
+---------------------------------------------------+

mysql> SELECT DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY);
| DATE_ADD(DATE_ADD(MAKEDATE(2013, 1), INTERVAL (3)-1 MONTH), INTERVAL (11)-1 DAY) |
+----------------------------------------------------------------------------------+
| 2013-03-11                                                                       |
+----------------------------------------------------------------------------------+

Jadi untuk menjawab pertanyaan OP:

SELECT * FROM `date`
WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY)
BETWEEN '2013-01-01' AND '2014-01-01';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Parsing string XML di MySQL

  2. Bagaimana Anda mendapatkan id baris dengan aman dan efisien setelah disisipkan dengan mysql menggunakan MySQLdb dengan python?

  3. Contoh CURRENT_TIMESTAMP – MySQL

  4. Praktik terbaik untuk menyimpan hash md5 secara efisien di mysql

  5. pilih setiap baris lain di MySQL tanpa bergantung pada ID apa pun?