Mysql: установите формат DATETIME в "DD-MM-YYYY HH: MM: SS" при создании таблицы
После googling я не могу найти способ создать новую таблицу с столбцом DATETIME
со стандартным форматом, установленным на 'DD-MM-YYYY HH:MM:SS
'
Я увидел учебное пособие, в котором это было сделано в phpmyadmin
, поэтому я подозреваю, что могу использовать mysql через командную строку и добиваться того же самого при создании моей новой таблицы с помощью
CREATE TABLE ()
Заранее благодарю
Ответы
Ответ 1
"MySQL извлекает и отображает значения DATETIME в формате" YYYY-MM-DD HH: MM: SS ".
Это с сайта mysql. Вы можете хранить только этот тип, но вы можете использовать одну из многих функций формата времени, чтобы изменить ее, когда вам нужно ее отобразить.
Функции времени и даты Mysql
Например, одной из этих функций является DATE_FORMAT, которая может быть использована так:
SELECT DATE_FORMAT(column_name, '%m/%d/%Y %H:%i') FROM tablename
Ответ 2
Используйте функцию DATE_FORMAT для изменения формата.
SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y')
SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename
Подробнее см. DOC
Ответ 3
Как объяснили другие, это невозможно, но здесь альтернативное решение требует небольшой настройки, но работает как столбец 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! Надеюсь, это помогло, по крайней мере, я рад, что у меня это получилось.
Ответ 4
Я использовал следующую строку кода и отлично работает Спасибо.... @Mithun Sasidharan
**
SELECT DATE_FORMAT (column_name, '% d/% m/% Y') FROM tablename
**
Ответ 5
Я уверен, что вы не можете изменить формат datetime в mysql. Настройка phpmyadmin, вероятно, использует пользовательский формат, поскольку он читает дату-время (используя DATE_FORMAT или что-то из php). Не имеет значения, какой формат использует база данных, формат в приложении, чтобы отображать его по своему желанию.
Форматирование даты - довольно обычная задача. Обычно мне нравится абстрагироваться от кода интернационализации или, если вам не нужно иметь дело с i18n, в библиотеку общей даты. Это помогает поддерживать согласованность и упрощает изменение позже (или добавить поддержку i18n).
Ответ 6
Нет, вы не можете; datetime будет храниться в формате по умолчанию только при создании таблицы, а затем вы можете изменить формат отображения в select
так, как хотите, используя Mysql Date Time Functions
Ответ 7
Это невозможно сделать для таблицы; кроме того, вы даже не можете изменить это значение по умолчанию.
Ответ - это серверная переменная datetime_format, она не используется.
Ответ 8
Dim x as date
x = dr("appdate")
appdate = x.tostring("dd/MM/yyyy")
dr - это переменная datareader
Ответ 9
попробуйте следующее:
DATE NOT NULL FORMAT 'YYYY-MM-DD'