Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP и MySQL:Сравняване на месец и ден с динамична година

Можете да използвате MySQL date_format функция при проверка на датата.

Например:

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

Така че можете просто да проверите с прост интервал:днес е 0518 и е между 2 февруари и 31 май:

Пълен пример:

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)

Примерна заявка:

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)

РЕДАКТИРАНЕ :

Прочетете коментара си за отговора на @FelipeDuarte... За периода от 10/01 (1 октомври) до 02/01 (1 февруари) трябва да вземем предвид новата година...

Можете да мамите, като разделите периода на две:10/01 до 12/31 и 01/01 до 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. Typo3 V6:Как да създадете контейнер за елемент на съдържание? (без телевизор)

  2. Информация за базата данни information_schema в MySQL

  3. QMYSQL драйверът не е зареден в Windows

  4. Как се прави прагова или ограничена таблица на mysql?

  5. Грешка ETIMEDOUT при запитване на mysql база данни