Как добавить несколько дней в функцию str to date mysql?



У меня есть таблица, в которой у меня есть строка даты, которая была в формате 01.04.2015. Теперь я хочу добавить несколько дней в этот столбец формата даты строки. Для этого у меня есть ниже запрос, чтобы добавить несколько дней.



SELECT DATE_ADD(level2,INTERVAL 28 DAY) level2 FROM  sales_purchase_stocks_hs WHERE stock= '123'


Когда я запускаю этот запрос, я получаю неправильную дату выхода. Выход положен 2001-05-18 15:00:00. Но моя исходная строка даты была 01.04.2015 (1 апреля 2015 года).



Я попробовал с нижеприведенным запросом



SELECT STR_TO_DATE(DATE_ADD(level2,INTERVAL 28 DAY),'%d.%m.%Y') level2 FROM  sales_purchase_stocks_hs WHERE stock = '123'.


Но когда я выполняю запрос, я получаю null в результате. Может ли кто-нибудь, пожалуйста, помочь мне там, где я я поступаю неправильно?

480   2  

2 ответов:

Вы делаете это неправильно. Вам нужно сначала преобразовать строку date в реальную дату с помощью str_to_date, а затем применить к ней date_add().

Вот как str_to_date работает

mysql> select str_to_date('01.04.2015','%d.%m.%Y') as date;
+------------+
| date       |
+------------+
| 2015-04-01 |
+------------+
1 row in set (0.00 sec)

Теперь используйте вышеизложенное внутри date_add() так что у вас есть

mysql> select date_add(str_to_date('01.04.2015','%d.%m.%Y'),interval 28 day) as date;
+------------+
| date       |
+------------+
| 2015-04-29 |
+------------+
1 row in set (0.00 sec)

Теперь вы можете использовать вышеизложенное в запросе.

SELECT DATE_ADD(`your_field_name`, INTERVAL 28 DAY)....

Например, я добавляю сюда 10 дней,

mysql> select date_start from date_of_join where id = 23 ;
+------------+
| date_start |
+------------+
| 2012-02-03 |
+------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_ADD(`date_start`, INTERVAL 10 DAY) from date_of_join where id = 23 ;
+-----------------------------------------+
| DATE_ADD(`date_start`, INTERVAL 10 DAY) |
+-----------------------------------------+
| 2012-02-13                              |
+-----------------------------------------+
1 row in set (0.00 sec)

Comments

    Ничего не найдено.