关于varchar类型转换成datetime类型的问题

时间字段有一个与当前系统时间的判断条件,但是存储的数据类型在表中是字符串,请问在写where 是怎么直接将其转换,谢谢!!
上万条记录,类似的表40多个,没法改,而其数据全部自动转存进来的。。。
我只希望找个方法, 当调用varchar 类型的log_date在与系统时间进行时间类型比较时, 可以顺利进行。。。。

第1个回答  推荐于2017-12-15
如果你用的是sql server 2008的话不用转换就能直接比较 sql server 2005 没试过不知道
转换的方法:
sql 中:
select convert (datetime,'07/22/1986')
select cast( '07/22/1986' as datetime)
Oracle 中
select to_date(date_time_string,'yyyy-MM-dd') from table_name
你试试吧追问

mysql 5.1
不好意思,没说清楚

追答

你直接比较不行吗(我MySQL用的不多)
建议你改成datatime类型,不然以后你的麻烦会很多的

追问

嗯,直接比较不行,系统时间是时间类型,数据时字符串,无法直接比较
log_date 里存的值: 20100603

追答

你把存放日期的格式改成2010-06-03试试

追问

那是不行的,当时他们建表的时候把log_date定义为varchar(50)....

追答

varchar(50)还放不下2010-06-03 ?

本回答被提问者采纳
相似回答