Как вставить и прочитать время / дату в MySQL / PHP? - PullRequest
1 голос
/ 05 августа 2011

Я хочу прочитать один день, месяц и год без добавления 3 дополнительных строк MySQL в следующем формате (с PHP):

day: 01
month: Jan, Feb, Mar..(first three letters)
year: 2011

Это таблица и PHP-скрипт, который я сейчас использую:

Я добавляю дату с PHP:

mysql_query("INSERT INTO news (...,`time`) VALUES (...'".date(d.".".m.".".Y)."');"); 

Я прочитал это с:

$query = "SELECT * FROM news";
$result = mysql_query ($query);

while ($row = mysql_fetch_assoc ($result)) {
echo $row['time'];
}

Таблица MySQL:

news:
time(text):
"27.03.2011"

Ответы [ 5 ]

1 голос
/ 05 августа 2011

Запрос должен быть:

mysql_query("INSERT INTO news (...,`time`) VALUES (...'".date(d.".".M.".".Y)."');");

M вместо m дает трехбуквенное текстовое представление месяца.

Получить с:

while ($row = mysql_fetch_assoc ($result)) {
    echo date( 'd', strtotime( str$row['time'] ) );
    echo date( 'M', strtotime( str$row['time'] ) );
    echo date( 'Y', strtotime( str$row['time'] ) );
}

Подробнее о:

http://php.net/manual/en/function.date.php

1 голос
/ 05 августа 2011

Вы можете использовать функции МЕСЯЦ (), ДЕНЬ (), ГОД () Mysql., Т.е.

SELECT MONTH(`time`) AS `month`, DAY(`time`) AS `day`, YEAR(`time`) AS `year` FROM `news` [...]
1 голос
/ 05 августа 2011

вы можете сделать это в PHP, проверить функцию strftime или использовать в SELECT что-то вроде

   SELECT DAY(date) as day, MONTH(date) as month, YEAR(date) as year FROM table

и в php вы бы назвали его $ result ['day']. $ result ['month'] и т. д. "date" в запросе SELECT - это, конечно, имя столбца, в котором вы храните свою дату. Я бы порекомендовал strftime

0 голосов
/ 05 августа 2011

Вы должны использовать столбец DATETIME в своей таблице MySQL.MySQL отвечает за сохранение даты в собственном внутреннем формате, и вы можете получить ее в любом необходимом формате.

Чтобы вставить текущую дату, вы можете просто

INSERT INTO news (...,`time`) VALUES (...,NOW())

Toполучите его в нужном формате, используйте

SELECT DATE_FORMAT(`time`, '%d.%b.%Y');

Документация по MySQL DATE_FORMAT()

0 голосов
/ 05 августа 2011
SELECT *, substring(1,2) as day, substring(4,2) as month, substring(7) as year FROM table

Также вы можете (и должны) использовать date формат таблицы и использовать DAY(), MONTH(), YEAR() функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...