MySQL使用现有字段值更改表

时间:2010-10-20 07:24:34

标签: php mysql database database-design

我正在使用一个数据库,该数据库有一个名为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 个答案:

答案 0 :(得分:2)

首先使用alter table query:

alter table date add column datetimefield datetime NOT Null

然后

在日期使用自我加入的更新查询,并使用日期,月份,年份列值的concat更新datetimefield。

答案 1 :(得分:1)

试试这个(未经测试) -

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

答案 2 :(得分:0)

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