Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Utwórz datę z pól dnia, miesiąca, roku w MySQL

Jeśli masz wartości całkowite dla roku, miesiąca i dnia, możesz utworzyć DATETIME, łącząc MAKEDATE() i DATE_ADD(). MAKEDATE() ze stałym dniem 1 da ci DATETIME dla pierwszego dnia danego roku, a następnie możesz dodać do niego miesiąc i dzień za pomocą 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                                                                       |
+----------------------------------------------------------------------------------+

Aby odpowiedzieć na pytanie 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. Mapowanie zestawu wyników JDBC na obiekt

  2. Czy mogę uruchomić plik sql w mojej instancji Google Cloud Sql za pomocą polecenia gcloud sql?

  3. Jak wyłączyć logowanie root do MySQL, gdy nie podano hasła?

  4. Konieczność zapytania o odrębną kombinację dwóch pól, wraz z liczbą, która występuje odrębną kombinację

  5. Jaka jest najlepsza wydajność pobierania wyników MySQL EAV jako tabeli relacyjnej?