我可以转换' varchar'列到日期时间'类型

时间:2015-08-06 16:05:11

标签: mysql sql-server datetime type-conversion

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

1 个答案:

答案 0 :(得分:0)

使用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的其他部分。

希望这有帮助!