【问题标题】:Can I Convert a 'varchar' column to a 'datetime' type我可以将“varchar”列转换为“日期时间”类型吗
【发布时间】:2015-08-06 16:05:10
【问题描述】:

我有一个网页,用于访问数据库并在设置约会时进行查找。它已经设置并使用了几个月,但现在我们想要将存储“约会日期”的列从“varchar”更改为“datetime”。问题是 varchar 日期被放入数据库中,例如“2015 年 6 月 10 日星期五”。我尝试使用“CONVERT”、“PARSE”、“DECLARE”和“SELECT PARSE”。我总是收到“不正确的语法”错误。这可能吗?如果是这样,正确的语法是什么?

【问题讨论】:

  • 您使用的语法错误是什么?
  • 检查 str_to_date 函数。 [链接]dev.mysql.com/doc/refman/5.5/en/…
  • 您使用的是哪个 DBMS? sql 服务器 mysql。你使用的代码是什么?

标签: mysql sql-server datetime type-conversion


【解决方案1】:

像这样使用 STR_TO_DATE 函数:

STR_TO_DATE('Friday, June 10, 2015', '%W, %M %e, %Y')

上面的示例假定没有前导零的日期格式(例如“1”而不是“01”)。有关格式说明符的更多信息,请参阅here

编辑:重新阅读您的问题后,我并不完全清楚您想如何使用此转换...如果您尝试转换列的存储方式在您的数据库中,那么我建议您在表中创建一个新的 DATE 类型列并运行 UPDATE 来设置每一行的值,如下所示:

UPDATE table SET newDateCol = STR_TO_DATE(oldVarcharCol, '%W, %M %e, %Y');

然后您可以删除旧列并将新列重命名为您喜欢的任何内容。请记住,这可能会影响依赖该字段为 VARCHAR 的系统的其他部分。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 2013-01-14
    • 2010-10-31
    相关资源
    最近更新 更多