【问题标题】:Update Varchar entries in MySQL table更新 MySQL 表中的 Varchar 条目
【发布时间】:2013-01-07 13:08:23
【问题描述】:
CREATE TABLE `Schedule` (
  `id` smallint(6) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  `deptime` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3221 DEFAULT CHARSET=latin1;

deptime 字段包含以下格式的条目:2012-09-04 09:17

现在我需要更改此字段中所有条目的日期,即2013-07-01 09:17。不应更改时间,即09:17。如何使用 UPDATE 查询快速完成此操作?

【问题讨论】:

  • 如果您使用timestamp 或类似的列类型,这会容易得多!
  • @Sirko:问题是一个预定义的数据集是之前为这个表创建的。我应该使用这个数据集,但是必须修改日期。这就是为什么我不能重新定义表格。

标签: mysql date varchar create-table


【解决方案1】:

或者试试这个...

    UPDATE schedule SET deptime = CONCAT('2013-07-01 ',TIME(deptime));

【讨论】:

    【解决方案2】:

    试试这个-

    update table Schedule 
    set deptime = STR_TO_DATE(deptime,'%Y-%m-7 %h: %i');
    OR
    update table Schedule 
    set deptime = STR_TO_DATE(deptime,'%Y-%m-$PHPVar %h: %i');
    

    1) 在 day 字段中提供硬编码值或提供 PHP 变量(如果有)。 2) 在 str_to_date 函数中使用 %H 表示 24 小时格式,使用 %h 表示 12 小时格式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-31
      • 2015-04-26
      • 2014-11-14
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2013-08-02
      相关资源
      最近更新 更多