2011-12-01 1 views
25

グーグルで回った後、DATETIMEカラムを持つ新しいテーブルを作成する方法が見つかりません「DD-MM-YYYY HH:MM:SSMysql:テーブルを作成するときにDATETIMEのフォーマットを 'DD-MM-YYYY HH:MM:SS'に設定します。

に私はそれがとてもphpmyadminで行われたチュートリアルを見た

CREATE TABLE() 

と私の新しいテーブルを作成するときに、私はコマンドラインからMySQLを使用して同じことを達成できると思われるありがとう事前に

+0

あなたが答えてくれてありがとう、私は私がしたい形式を取得する方法として、DATE_FORMAT機能について読んだあなたは形式 – Rahul

答えて

40

"MySQLはDATETIME値を取得し、 'YYYY-MM-DD HH:MM:SS'形式で表示します。 これはmysqlサイトからのものです。このタイプのみを保存することはできますが、表示する必要がある場合は、多くの時間フォーマット関数の1つを使用して変更することができます。例えば

Mysql Time and Date functions

、それらの機能の一つは、とても好きに使用することができDATE_FORMAT、次のとおりです。

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

ありがとうございました –

+1

PHPの 'date()'関数を使って現在の日時を取得するには、 'date(" Y-m-d H:i:s ")'を使います。 – Carcigenicate

16

DATE_F ORMAT関数を使用して書式を変更します。

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

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

は、私はあなたは、MySQLの日時形式を変更できないことをかなり確信して詳細

4

ためDOCを参照してください。 phpmyadminの設定は、おそらくDATE_FORMATやPHPの何かを使ってdatetimeを読み込むときに、カスタムフォーマットを適用しています。データベースが使用する形式は関係ありません。アプリケーションでフォーマットして、希望通りに表示できます。

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

+0

を変更することができ、テーブルを作成している間、私は思いません。 –

2

ありませんあなたがすることはできません。 datetimeはテーブルの作成中にのみデフォルトの形式で保存され、表示形式を変更することができますMysql Date Time Functions

2

これはテーブルでは実行できません。また、このデフォルト値を変更することさえできません。

答えはサーバー変数datetime_formatです。未使用です。それを、それは少し調整する必要

DATE NOT NULL FORMAT 'YYYY-MM-DD' 
2
Dim x as date 

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

drは

0

これを試すのDataReaderの変数であります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の代替方法は次のとおりです。これが助けてくれることを願って、少なくとも私はこれが働いてうれしいです。

5

他の人はそれが不可能であるが、ここでは別の解決策だと説明してきたように、しかし:

5

それは細かいおかげで動作するコード&の次の行を使用している.... @Mithun Sasidharan **

SELECT DATE_FORMAT(COLUMN_NAME、 '%のM /%Y%のD/A')テーブル名FROM

**

関連する問題