Привет, я вставляю запись даты в поле, которое имеет отметку времени по типу и поле по умолчанию CURRENT_TIMESTAMP... мое значение вставки будет выглядеть следующим образом:
'.($data[16] == '' ? CURRENT_DATE() : $data[16]).'
как бы отформатировать CURRENT_DATE() как 30 ноября-10, чтобы соответствовать формату $data [16], если нет. Также следует изменить тип поля на дату, а не на отметку времени?
date($format,strtotime(CURRENT_DATE))
работает для меня.
CURRENT_DATE()
- это функция MySQL. Вы можете использовать его как строковый литерал:
$sql_date = ($date == '') ?
"DATE_FORMAT(CURRENT_DATE(),'%d-%b-%y')" : "'$date'";
mysql_query("UPDATE foo SET date=$sql_date");
Это предполагает, что $date
безопасен для вставки SQL.
Или вы можете просто использовать PHP:
if (!$date) $date = date('%d-%M-%y');
mysql_query("UPDATE foo SET date='$date'");
Лично я обычно использовал бы PHP-решение, так как он упростил использование одного и того же запроса с теми же записями безопасных параметров (которые не используются в этом примере), независимо от того, как вы создаете дату.
Также следует изменить тип поля на дату, а не на отметку времени
Если время не имеет значения, то это должно быть поле даты. Однако, если это поле даты/времени (но не текстовое поле), вы должны вставлять в формате YYYY-MM-DD, а приведенный выше код бесполезен.
То есть, если поле является текстом, то приведенный выше код может оказаться полезным. Однако, если вы просто сохраняете дату в одном поле, вы должны использовать поле даты. В этом случае формат, который вы вставляете, должен всегда находиться в ГГГГ-ММ-ДД. Когда вы извлекаете данные, вы можете отформатировать их так, как вы хотите для отображения.
Этот вопрос не имеет смысла. Я предполагаю, что вы хотите вывести текущую дату.. в этом случае вы можете изменить формат следующим образом:
$today = date("M/d/y");
также, time() выведет текущую дату во вторую в отметке времени unix
$today = time();