2013-02-27 67 views
0

我有一个包含数据类型为varchar的time_stamp列的表。 它提供的数据形式为“2013年2月28日上午11:33:45” 我想更改为datetime的数据类型,因为我不能在varchar上应用任何日期时间函数。将数据类型从varchar更改为datetime格式,并恢复以前的数据

我已经在该表中有很多数据,我想更改其数据类型并恢复所有数据。

我该怎么做。

+0

尝试使该视图。问候 – c0dem0nkey 2013-02-27 09:10:37

+0

我试着创建一个视图,但是然后所有的tiestamp varchar值都变为null。 – user1896796 2013-02-27 09:37:39

回答

0

你需要将其转换为datetime使用STR_TO_DATE

SELECT * 
FROM tablename 
WHERE STR_TO_DATE(time_stamp, '%m/%d/%Y %h:%i:%s %p') = CURDATE() 
+0

因此,使用str_to_date制作视图将如下所示:create table myView as select *,STR_TO_DATE(time_stamp,'%e /%d /%Y%h:%i:%s%r')作为来自tablename的new_time_stamp; – mika 2013-02-27 09:23:58

+0

@mika,是的,在这一点上,'new_time_stamp'已经是datetime数据类型。 – 2013-02-27 09:25:46

+0

new_time_stamp获取值为空值,我需要转换所有varchar值并稍后使用它们。 – user1896796 2013-02-27 09:40:42

相关问题