Не может изменить формат даты в таблице mysql с помощью PHP

Я хочу изменить формат даты в столбце Time таблицы моей базы данных, и я подал в суд на этот код, но ничего не произошло!

Я пробовал это с кодом, но не работал! часть редактирования даты

$date = "SELECT DATE_FORMAT(time, '%m/%d/%Y %H:%i') FROM climate";

и это мой полный код:

 $conn = mysqli_connect($servername, $username, $password, $database);

 // Check connection

 if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
 }

   echo "Connected successfully";

    $sql = "INSERT INTO climate (temp, hum, time) VALUES ('$temp', 
  '$hum', 
  '$time')";
   $date = "SELECT DATE_FORMAT(time, '%m/%d/%Y %H:%i') FROM climate";

if (mysqli_query($conn, $date)) {
// output data of each row
    echo "OK";

 } else {
 echo "0 results";
 }
if (mysqli_query($conn, $sql)) {
  echo "New record created successfully";
 } else {
  echo "Error: " . $sql . "<br>" . mysqli_error($conn);
 }

Формат всегда будет YYYY-MM-DD HH:MM:SS в базе данных. Вам нужно отформатировать его, когда вы выбираете его.

Qirel 09.05.2019 21:51

Помните о SQL-инъекциях

Raymond Nijland 09.05.2019 21:54

Значит, мой путь неверный! как можно изменить? Спасибо

M.Saeed 09.05.2019 21:55

Совершенно непонятно, чего мы здесь пытаемся добиться. Функция DATE_FORMAT возвращает строковое значение. Выполнение оператора SELECT, включающего функцию DATE_FORMAT в выражение в списке выбора, ничего не меняет в базе данных. DATE, DATETIME, TIMESTAMP, TIME типы данных имеют формат(ы) по умолчанию, которые MySQL ожидает/интерпретирует. dev.mysql.com/doc/refman/8.0/en/datetime.html для предоставления значения в каком-либо другом формате, мы можем использовать такую ​​функцию, как STR_TO_DATE. dev.mysql.com/doc/refman/5.5/en/…

spencer7593 09.05.2019 22:01

Кроме того, я думаю, мы можем просто сказать "Спасибо за отчет о состоянии". Потому что не похоже, что был задан фактический вопрос. ericlippert.com/2014/03/05/как-отлаживать-маленькие-программы

spencer7593 09.05.2019 22:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
102
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Формат, который хранится в любом столбце типа даты в MySQL, будет иметь формат YYYY-MM-DD HH:MM:SS. Это не может быть изменено, но это не имеет значения, так как вы можете отформатировать его любым удобным для вас способом при выборе значений — либо в PHP после его получения, либо с помощью DATE_FORMAT() в операторе SELECT.

Вы также должны использовать подготовленные операторы вместо того, чтобы вводить значения непосредственно в запрос.

Эти операторы SELECT будут выбирать только одну строку, но они просто показывают принцип форматирования после значений, которые были вставлены (поскольку они, как было сказано ранее, всегда будут иметь один и тот же формат в таблице).

Имейте в виду, что когда вы отправляете данные в SQL, они должны быть в недвусмысленном формате, таком как YYYY-MM-DD HH:MM:SS, иначе вы рискуете перепутать даты (например, 2/1/2019 первое февраля или второе января?).

// Inserting a new row
$sql = "INSERT INTO climate (temp, hum, time) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("sss", $temp, $hum, $time);
$stmt->execute();
$stmt->close();

// Fetch a row and format the time in SQL
$sql = "SELECT DATE_FORMAT(time, '%m/%d/%Y %H:%i') FROM climate";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($time_formatted);
$stmt->fetch();
echo $time_formatted;
$stmt->close();

Кроме того, вы можете отформатировать его в PHP после получения.

$sql = "SELECT time FROM climate";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($time_formatted);
$stmt->fetch();
$stmt->close();
$date = new DateTime($time_formatted);
echo $date->format("m/d/Y H:i");

Имейте в виду, что это не имеет обработки ошибок и всегда предполагает, что все всегда будет работать, вы можете подумать о добавлении правильной обработки ошибок.

Я пробовал, но не менял формат времени в таблице.

M.Saeed 10.05.2019 00:35

Как я уже сказал, в таблице это не изменится. Это тоже не нужно. Вы должны отформатировать его, когда вы выбираете его. Прочитайте описание вместе с ответом.

Qirel 10.05.2019 07:18

да, теперь я понимаю, большое спасибо :) Я новичок в PHP и учусь. :)

M.Saeed 10.05.2019 11:59

Другие вопросы по теме