我正在编写一个查询来获取varchar
类型的列中所有值的结果..小于'29 / 08/2010'(日期)
我的查询:
SELECT * FROM EMPLOYEES WHERE COLUMN1 < '29/08/2010'
此处column1属于varchar
类型。我正在使用SQL Server 2005
有没有办法让这成为可能.. ??
请帮助我。
提前致谢
答案 0 :(得分:2)
你可以尝试
SELECT * FROM EMPLOYEES WHERE convert(datetime,COLUMN1,110) < convert(datetime, '29/08/2010',110)
答案 1 :(得分:1)
Convert(field,datetime,101)
答案 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子句成为不可分区的,从而导致索引扫描操作检索数据。