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

PHP i MySQL:porównanie miesiąca i dnia z dynamicznym rokiem

Możesz użyć MySQL date_format funkcja podczas sprawdzania daty.

Na przykład:

select date_format('2016-05-18', '%m%d');
+-----------------------------------+
| date_format('2016-05-18', '%m%d') |
+-----------------------------------+
| 0518                              |
+-----------------------------------+
1 row in set (0,01 sec)

Możesz więc po prostu sprawdzić z prostym interwałem:dzisiaj jest 0518 i to między 2 lutego a 31 maja:

Pełny przykład:

desc mytable;
+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| date_from | char(4) | YES  |     | NULL    |       |
| date_to   | char(4) | YES  |     | NULL    |       |
| price     | int(11) | YES  |     | NULL    |       |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0,00 sec)

select * from mytable;
+-----------+---------+-------+
| date_from | date_to | price |
+-----------+---------+-------+
| 0901      | 0930    |   100 |
| 1001      | 0201    |    80 |
| 0202      | 0531    |   100 |
| 0601      | 0701    |   120 |
+-----------+---------+-------+
4 rows in set (0,00 sec)

Przykładowe zapytanie:

select price, date_from, date_to from mytable where date_format(now(), '%m%d') between date_from and date_to;
+-------+-----------+---------+
| price | date_from | date_to |
+-------+-----------+---------+
|   100 | 0202      | 0531    |
+-------+-----------+---------+
1 row in set (0,01 sec)

EDYTUJ :

Przeczytaj swój komentarz do odpowiedzi @FelipeDuarte... W okresie od 1 października (1 października) do 1 lutego (1 lutego) musimy wziąć pod uwagę nowy rok...

Możesz oszukiwać, dzieląc okres na dwie części:10.01 do 31.12 i 01.01 do 02.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. Kod PHP do wstawienia wartości pola wyboru do określonej kolumny w mysql z wybranym formularzem

  2. Błąd krytyczny:nie można ponownie zadeklarować session_start() w wierszu functions.php 25

  3. Wydajność wkładania wsadowego JDBC

  4. Jak używać pól alfanumerycznych z klauzulą ​​BETWEEN w Mysql?

  5. Uzyskaj identyfikator tabeli po wstawieniu za pomocą ColdFusion i MySQL