it-swarm.com.ru

Mysql: установить формат DATETIME на "ДД-ММ-ГГГГ ЧЧ: ММ: СС" при создании таблицы

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

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

CREATE TABLE ()

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

30
Iam Zesh

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

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

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

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

Используйте функцию DATE_FORMAT, чтобы изменить формат. 

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

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

Обратитесь к DOC для более подробной информации

16
Mithun Sasidharan

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

SELECT DATE_FORMAT (имя столбца, «% d /% m /% Y») ОТ имени таблицы

**

5
Datta Salunkhe

Как другие объясняли, что это невозможно, но здесь есть альтернативное решение, оно требует небольшой настройки, но работает как столбец 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 в качестве типа столбца, потому что они имеют свой собственный формат и обновляются автоматически. 

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

5
aksu

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

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

4
colithium

Нет, ты не можешь; datetime будет сохраняться в формате по умолчанию только при создании таблицы, а затем вы можете изменить формат отображения в вашем запросе select так, как вы хотите, используя Mysql Date Time Functions

2
Rahul
Dim x as date 

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

dr это переменная datareader

2
ynot

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

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

2
Devart

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

DATE NOT NULL FORMAT 'YYYY-MM-DD'
0
GigolNet Guigolachvili