SQL Server查询帮助...需要将varchar转换为日期

时间:2010-10-08 06:07:25

标签: sql sql-server sql-server-2005

我正在编写一个查询来获取varchar类型的列中所有值的结果..小于'29 / 08/2010'(日期)

我的查询:

SELECT * FROM EMPLOYEES WHERE COLUMN1 < '29/08/2010'

此处column1属于varchar类型。我正在使用SQL Server 2005

有没有办法让这成为可能.. ??

请帮助我。

提前致谢

4 个答案:

答案 0 :(得分:2)

你可以尝试

SELECT * FROM EMPLOYEES WHERE convert(datetime,COLUMN1,110) <  convert(datetime, '29/08/2010',110)

答案 1 :(得分:1)

答案 2 :(得分:1)

你试过吗

SELECT * FROM EMPLOYEES WHERE CONVERT(datetime, COLUMN1, 103) > CONVERT(datetime, '29/08/2010', 103)

答案 3 :(得分:0)

如果您在COLUMN1上严格存储数据数据,那么为什么您将数据类型定义为varchar?

从性能的角度来看,它会破坏性能,因为将Varchar转换为DateTime或任何其他会使你的索引效率低下(如果有的话)。通常使用RIGHT()或CONVERT,LIKE'%%'或Like'a%'等函数会使WHERE子句成为不可分区的,从而导致索引扫描操作检索数据。