Я пытаюсь вставить дату, скажем CURDATE()
в поле sql DateTime
.
Мой день представлен в формате: 28/01/2008
Когда я пытаюсь вставить его в SQL, я получаю только нули.
Итак, как я могу правильно преобразовать его?
Я пытаюсь вставить дату, скажем CURDATE()
в поле sql DateTime
.
Мой день представлен в формате: 28/01/2008
Когда я пытаюсь вставить его в SQL, я получаю только нули.
Итак, как я могу правильно преобразовать его?
$newdate = date('Y-m-d', strtotime($olddate));
Я пытаюсь вставить дату, скажем CURDATE() в поле sql DateTime.
$timestamp = strtotime($old_date);
$mydate = date('Y-m-d H:i:s', $timestamp);
Поскольку вы используете ноту европейской даты (dd/mm/yyyy), функция strtotime вернет 0 (которая, в свою очередь, будет преобразована в 1970-01-01 по дате), если вы не используете - или . как разделитель.
Итак, если вы хотите использовать strtotime, вам придется немного изменить строки даты:
$olddate = '28/01/2008';
$newdate = strtotime(str_replace('/', '-', $olddate));
$newdate теперь должен содержать "2008-01-28"...
join('-',array_reverse(explode('/',$date)))
чтобы получить стандартный формат даты YYYY-MM-DD Mysql.
или просто используйте MySQL DATE_FORMAT
Я пытаюсь вставить дату, давайте скажем CURDATE() в поле sql DateTime.
Почему вы не используете функцию MySQL напрямую?
insert tbl (id, other, datecol)
values(NULL, 'abcdef', CURDATE());
Мой день представлен в формате: 28/01/2008
Если это не CURDATE(), вы хотите, но вместо этого, это переменная PHP в формате dd/mm/yyyy, посмотрите эту страницу руководства MySQL для форматирования литералов. Безопасные форматы YYYY-MM-DD
и YYYYMMDD
без времени.
$date = '28/01/2008';
$query = "insert tbl (id, other, datecol)
values(NULL, 'abcdef', '" . date('Ymd', strtotime($date)) . "');";
Примечание. yyyymmdd также является допустимым форматом в SQL Server.