Как правильно использовать несколько экземпляров str_to_date с оператором вставки MySQL?

Я пытаюсь вставить 2 даты в британском формате (дд / мм / гггг) в базу данных MySQL в формате даты MySQL США.

Я использую str_to_date. Первый экземпляр str_to_date работает должным образом, но второй экземпляр всегда вставляет ту же дату, что и первый экземпляр str_to_date, даже если исходные даты отличаются.

$date_1 = "10/01/2016";
$date_2 = "16/02/2016";

$sql = "INSERT INTO customers (date_1, date_2)
VALUES (STR_TO_DATE( '$date_1', '%m/%d/%Y %h:%i' ), STR_TO_DATE( '$date_2', '%m/%d/%Y %h:%i' ))";

Как правильно обрабатывать несколько экземпляров str_to_date в операторе вставки MySQL?

Спасибо

1

Решение

Строка формата str_to_date() сообщает MySQL, в каком формате находится значение даты первого аргумента. Дело не в том, как отформатировать значение в формате mysql (например, в месте назначения). Вывод str_to_date ВСЕГДА является собственным значением даты / времени mysql, которое yyyy-mm-dd hh:mm:ss

Поскольку вы говорите, что формат ввода monday/day, но предоставляем day/month ценности и НЕТ временные значения, вы получите сомнительные результаты.

Пытаться

                         24/01/2016
STR_TO_DATE( '$date_1', '%d/%m/%Y' )

вместо. Обратите внимание на удаление символов формата времени. Ваша входная строка не имеет значений времени вообще.

mysql> select str_to_date('24/01/2016', '%m/%d/%Y %h:%i');
+---------------------------------------------+
| str_to_date('24/01/2016', '%m/%d/%Y %h:%i') |
+---------------------------------------------+
| NULL                                        |
+---------------------------------------------+
1 row in set, 1 warning (0.00 sec)

mysql> select str_to_date('24/01/2016', '%d/%m/%Y');
+---------------------------------------+
| str_to_date('24/01/2016', '%d/%m/%Y') |
+---------------------------------------+
| 2016-01-24                            |
+---------------------------------------+
1 row in set (0.00 sec)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]