web-dev-qa-db-ja.com

Mysql:テーブルの作成時に、DATETIMEの形式を「DD-MM-YYYY HH:MM:SS」に設定します

グーグルを回った後、デフォルトの形式を「DD-MM-YYYY HH:MM:SS」に設定したDATETIME列を持つ新しいテーブルを作成する方法が見つかりません

私はそれがphpmyadminで行われたチュートリアルを見たので、コマンドライン経由でmysqlを使用して、新しいテーブルを作成するときに同じことを達成できると思います

CREATE TABLE ()

前もって感謝します

32
Iam Zesh

「MySQLはDATETIME値を取得し、「YYYY-MM-DD HH:MM:SS」形式で表示します。」これはmysqlサイトからです。このタイプのみを保存できますが、表示する必要がある場合は、多くの時間形式関数のいずれかを使用して変更できます。

Mysqlの時刻と日付の関数

たとえば、これらの関数の1つは DATE_FORMAT であり、次のように使用できます。

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

DATE_FORMAT関数を使用して、形式を変更します。

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

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

詳細については DOC を参照してください

16

他の人がそれは不可能だと説明したように、ここに別の解決策がありますが、少し調整が必要ですが、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を列タイプとして使用することはできません。これらは独自の形式を持ち、自動的に更新されるためです。

だから、ここにあなたの代替タイムスタンプまたは日時の代替物があります!これがお役に立てば幸いです、少なくとも私はこれが機能したことを嬉しく思います。

6
aksu

私は次のコード行を使用しましたが、うまく動作しますありがとうございます... @Mithun Sasidharan **

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

**

5
Datta Salunkhe

Mysqlでdatetime形式を変更できないことは確かです。 phpmyadmin設定は、(DATE_FORMATまたはphpの何かを使用して)日時を読み取るときに、おそらくカスタム形式を適用しています。データベースがどのフォーマットを使用するかは問題ではなく、アプリケーションでフォーマットして、必要に応じて表示します。

日付の書式設定は非常に一般的なタスクです。私は通常、それを国際化コードに抽象化するか、またはi18nを扱う必要がない場合は、共通の日付ユーティリティライブラリにしたいです。物事の一貫性を保つのに役立ち、後で変更しやすくなります(またはi18nサポートを追加します)。

4
colithium

いいえ、できません。 datetimeは、テーブルの作成中にのみデフォルト形式で保存されます。その後、 Mysql Date Time Functions を使用して、表示形式をselectクエリで変更できます。

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'