我可以将 'varchar' 列转换为 'datetime' 类型吗

Can I Convert a 'varchar' column to a 'datetime' type

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

像这样使用STR_TO_DATE函数:

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

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

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

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

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

希望对您有所帮助!