Получить значение поля datetime из базы данных MySQL - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь получить значение datetime из таблицы MySQL. Я сохранил его как 'yyyy-mm-dd hh:mm:ss', но когда я хочу заставить его напечатать на странице, я получаю это '2019-04-01 00:00:00' или только '2019-04-01'. Если я проверяю базу данных, я вижу, как правильно хранится время, но когда я хочу распечатать его, я получаю только нули.

if( $stmt = $mysqli->prepare( '
    SELECT
        estadistica_id, 
        aprobados, 
        suspendidos, 
        pendientes, 
        envios, 
        fecha, 
        curso.curso_id, 
        identificador_envio, 
        curso.titulo AS titulo_curso
    FROM estadistica
    LEFT JOIN curso ON estadistica.curso_id = curso.curso_id
    ORDER BY titulo_curso ASC' . $order_by
) ) {
    if( true === $stmt->execute() ) {
        $stmt->store_result();
        $stmt->bind_result( 
            $estadistica_id, 
            $aprobados, 
            $suspendidos, 
            $pendientes, 
            $envios, 
            $fecha, 
            $curso_id, 
            $identificador_envio, 
            $titulo_curso 
        );
        if( ( $num_rows = $stmt->num_rows ) > 0 ) {
            while( $stmt->fetch() ) {
                echo $fecha;
            }
        }
        $stmt->free_result();
        $stmt->close();
    }
}

$ fecha печатает '2019-04-01' и больше ничего. Я не знаю, как распечатать дату и время, хранящиеся в базе данных.

Здесь приведены скриншоты базы данных, на которых видно, что дата и время сохранены правильно.

database1 database2

Я потерян: (

Ценю всю вашу помощь;)

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

При получении значения datetime из базы данных формат по умолчанию зависит от вашего клиента.Большинство клиентов используют формат MySQL по умолчанию ('YYYY-MM-DD HH24:MI:SS'), но, похоже, ваш - нет.

Одним из решений было бы преобразование даты в строку с ожидаемым форматом в запросе SQL, используя Функция MySQL DATE_FORMAT():

Рассмотрим:

SELECT
    estadistica_id, 
    ..., 
    DATE_FORMAT(fecha, '%Y-%m-%d %H:%i:%s'),
    ...
FROM estadistica
...
1 голос
/ 01 апреля 2019

Как сказал Р. Смит в своем комментарии, он должен работать, если формат вашей колонки varchar.Вы должны иметь еще один.

Вы можете использовать DateTime (https://www.php.net/manual/en/class.datetime.php)

Пример:

$date = new \DateTime($fecha);
echo $date->format('Y-m-d H:i:s');
// => 2019-04-01 18:42:03
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...