Mysql: настройте формат DATETIME на "DD-MM-YYYY HH:MM: SS" при создании таблицы

после googling вокруг, я не могу найти способ создать новую таблицу с DATETIME столбец с форматом по умолчанию, установленным в'DD-MM-YYYY HH:MM:SS'

Я видел учебник, в котором это было сделано в phpmyadmin Я так подозреваю, что я мог бы использовать MySQL через командную строку и достичь того же при создании новой таблицы с помощью

CREATE TABLE ()

спасибо заранее

9 ответов


"MySQL извлекает и отображает значения DATETIME в формате" гггг-ММ-ДД чч:мм:СС"." Это с сайта mysql. Вы можете сохранить только этот тип, но вы можете использовать одну из многих функций формата времени, чтобы изменить его, когда вам нужно отобразить его.

Mysql функции времени и даты

например, одной из таких функций является DATE_FORMAT, который можно использовать для того чтобы полюбить так:

SELECT DATE_FORMAT(column_name, '%m/%d/%Y %H:%i') FROM tablename

используйте функцию DATE_FORMAT для изменения формата.

SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y')

SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename

Refer DOC для более подробной информации


как объясняли другие, это невозможно, но вот альтернативное решение, оно требует небольшой настройки, но работает как столбец datetime.

я начал думать, как я мог бы сделать возможным форматирование. У меня есть идея. Как сделать триггер на это? Я имею в виду, добавление столбца с типом char, а затем обновление этого столбца с помощью триггера MySQL. И это сработало! Я сделал некоторые исследования, связанные с триггерами, и, наконец, придумал это запросы:

CREATE TRIGGER timestampper BEFORE INSERT ON table
FOR EACH
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s');
CREATE TRIGGER timestampper BEFORE UPDATE ON table
FOR EACH
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s');

вы не можете использовать TIMESTAMP или DATETIME как тип столбца, потому что они имеют свой собственный формат, и они обновляются автоматически.

Итак, вот ваша альтернативная временная метка или альтернатива datetime! Надеюсь, это помогло, по крайней мере, я рад, что это сработало.


Я использовал следующую строку кода , и она отлично работает.... @Mithun Sasidharan **

выберите DATE_FORMAT (column_name, '%d/%m/%Y') из tablename

**


Я уверен, что вы не можете изменить формат datetime в mysql. Параметр phpmyadmin, вероятно, применяет пользовательский формат при чтении datetime (используя DATE_FORMAT или что-то из php). Неважно, какой формат данных используется формат в приложении, чтобы отобразить его, как вы хотите.

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


нет, вы не можете; datetime будет храниться в формате по умолчанию только при создании таблицы, а затем вы можете изменить формат отображения в вас select запрос так, как вы хотите, используя Mysql Функции Даты И Времени


Это невозможно сделать для таблицы; кроме того, вы даже не можете изменить это значение по умолчанию вообще.

ответ-переменная сервера datetime_format, оно не используется.


Dim x as date 

x = dr("appdate")
appdate = x.tostring("dd/MM/yyyy")

dr является переменной datareader


попробуйте это:

DATE NOT NULL FORMAT 'YYYY-MM-DD'