Как я могу преобразовать дату в формате php в формат SQL? (и вставьте его)
Я пытаюсь вставить дату, скажем CURDATE()
в поле sql DateTime
.
Моя дата в формате: 28/01/2008
Когда я пытаюсь вставить его в SQL, я получаю только нули.
Итак, как я могу правильно его преобразовать?
5 answers
$newdate = date('Y-m-d', strtotime($olddate));
Поскольку вы используете европейскую запись даты (дд/мм/гггг), функция strtotime вернет 0 (который, в свою очередь, будет преобразован в 1970-01-01 по дате), если вы не используете - или . как разделитель.
Поэтому, если вы хотите использовать strtotime, вам придется немного изменить строки даты:
$olddate = '28/01/2008';
$newdate = strtotime(str_replace('/', '-', $olddate));
$новая дата теперь должна содержать '2008-01-28'...
Я пытаюсь вставить дату, скажем CURDATE() в поле sql Дата-время.
$timestamp = strtotime($old_date);
$mydate = date('Y-m-d H:i:s', $timestamp);
join('-',array_reverse(explode('/',$date)))
Чтобы получить стандартный формат даты Mysql ГГГГ-ММ-ДД.
Или просто используйте MySQL'ФОРМАТ ДАТЫ
Я пытаюсь вставить дату, скажем, 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)) . "');";
Примечание: ггггммдд также является допустимый формат в SQL Server.