Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo các trường ngày, tháng, năm trong MySQL

Khi bạn có các giá trị nguyên cho năm, tháng và ngày, bạn có thể tạo DATETIME bằng cách kết hợp MAKEDATE () và DATE_ADD (). MAKEDATE () với ngày không đổi là 1 sẽ cung cấp cho bạn DATETIME cho ngày đầu tiên của năm nhất định, sau đó bạn có thể thêm vào đó tháng và ngày bằng 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                                                                       |
+----------------------------------------------------------------------------------+

Vì vậy, để trả lời câu hỏi của 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. Tòa nhà truy vấn động PDO

  2. Làm thế nào để trích xuất năm, tháng, ngày, giờ, phút, giây từ một ngày mysql?

  3. Sử dụng nhóm theo hai trường và đếm trong SQL

  4. mật khẩu mysql Kết nối với MySQL bằng PHP

  5. MySQL:nhiều bảng hay một bảng có nhiều cột?