хранить запятые в базе данных MySQL

0

Я пытаюсь сохранить дату в таблице sql, но я хочу, чтобы она отформатировалась как таковая:

Месяц день, год 10 октября 2010 г. Но всякий раз, когда я делаю вызов sql, 2010 теряется. Как я могу это исправить?

$eventdate = "October 10, 2010";
$sql = "INSERT INTO `tims`.`blog` ( `title`, `date`, `post`, `author`, `approved`) \n"
            . "VALUES (
                '" . mysql_real_escape_string($_REQUEST['title'])     . "',
                '" . mysql_real_escape_string(addslashes($eventDate)) . "',
                '" . mysql_real_escape_string($_REQUEST['TextArea1']) . "',
                '" . mysql_real_escape_string($_REQUEST['author'])    . "', 'False')\n";

//echo $sql;
$qry = mysql_query($sql) or die(mysql_error());
  • 7
    Почему вы хотите хранить отформатированную дату ?! Вы должны хранить даты в столбцах date или date и datetime , которые не имеют никакого форматирования. Форматирование имеет значение только тогда, когда вы хотите вывести дату. В каком типе столбца вы пытаетесь его сохранить?
  • 1
    Я бы порекомендовал вам хранить дату как datetime, а не как varchar / text.
Показать ещё 3 комментария
Теги:
escaping

2 ответа

1
Лучший ответ

Проверьте ширину столбца. Вам нужен VARCHAR (n) в качестве типа данных для этого столбца, а n должен быть длиной самого длинного месяца года + 9. Не рекомендуется хранить даты таким образом, если вы хотите индексировать или сортировать каждый они должны работать.

Чтобы увидеть структуру таблицы:

show create table `tims`.`blog`;
  • 0
    Спасибо. Это была моя проблема, я не сделал VARCHAR достаточно долго. Есть ли какой-нибудь вред в том, чтобы сделать его дольше, чем когда-либо понадобится Т? скажем, 255, будет ли база данных использовать больше памяти или что-то еще?
  • 0
    Я обычно делаю свои столбцы varchar в 3 раза больше, чем я ожидаю. Не уверен, если это осуждается, хотя.
3

Я согласен с остальными, вы должны использовать столбец даты в таблице для записи, а затем вы должны отобразить его в своем приложении, вы просто отформатируете полученную дату так, как хотите, "10 октября 2010 года". Пожалуйста, не храните дату как текст varchar, реляционная база данных имеет простоту для хранения даты для вас, а с помощью SQL вы можете форматировать дату так или иначе, как вы хотите ее отображать.

  • 0
    +1: для здравомыслия, зная, что следует оставить для презентации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню