2010-10-20 35 views
1

我正在使用一个名为date的表的数据库,该表包含日,月,年的单独字段。显然,当我尝试运行比较等时,这并不理想。我想知道是否可以为此表的每一行添加一个DateTime字段,并将连接的字符串插入到现有日期,月份的新字段中,一年的领域。使用现有字段值的MySQL Alter Table

我很确定它的可能性,我只是想知道是否有人能够指出我在如何实现这一目标的正确方向?

下面是当前日期表:(我知道)

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; 

回答

2

首先使用ALTER TABLE查询:

ALTER TABLE日期添加列DateTimeField字段的datetime NOT NULL

然后用自

使用更新查询日期和更新DateTimeField字段加入与CONCAT在日,月,年列值。

+1

您应该添加默认值或不使用“NOT NULL”。 – Toto 2010-10-20 08:50:24

+0

无所谓。因为我们会在日期,月份,年份用concat进行更新 – 2010-10-21 13:07:04

0

有什么问题,我不明白?改变表格,添加新的DATE列,然后使用CONCAT mysql函数或其他方式填充字符串“yyyy-mm-dd”。

+0

的问题是我不知道该怎么做。这就是为什么我问。 – TGuimond 2010-10-20 07:50:34

+0

做什么?如何发出ALTER TABLE?使用CONCAT功能?去阅读一些MySQL手册。认真。为什么不?或者至少搜索谷歌的alter table + concat mysql查询示例。去买一本关于MySQL的好书。 – 2010-10-20 08:07:46

1

试试这个(未经测试) -

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