1


0

既存のフィールド値を使用したMySQL Alter Table

dateと呼ばれるテーブルを持つデータベースを使用しています。このテーブルには、日、月、年の個別のフィールドが含まれています。 これは、比較などを実行しようとしているとき、明らかに理想的ではありません。 このテーブルの各行にDateTimeフィールドを追加し、既存の日、月、年のフィールドから連結された文字列を新しいフィールドに挿入することは可能だろうかと思います。

私はそれが可能だと確信しています、これを達成する方法について誰かが私を正しい方向に向けることができるかどうか疑問に思っていますか?

以下は現在の日付表です:(知っています)

CREATE TABLE IF NOT EXISTS `date` (
  `deposition_id` varchar(11) NOT NULL default '',
  `day` int(2) default NULL,
  `month` int(2) default NULL,
  `year` int(4) default NULL,
  PRIMARY KEY  (`deposition_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

3 Answer


2


最初にalter table queryを使用します。

テーブルの日付を変更し、列を追加しますdatetimefield datetime NOT NULL

then

日付に自己結合を使用して更新クエリを使用し、日付、月、年の列値に連結を使用してdatetimefieldを更新します。


1


これを試してください(未テスト)-

UPDATE date d SET d.datetime = (SELECT CONCAT('-','year','month','day') from date d1 where d1.id = d.id);


0


問題は何ですか、わかりませんか? テーブルを変更し、新しいDATE列を追加してから、CONCAT mysql関数などを使用して文字列「yyyy-mm-dd」を入力します。