在视图中将选择列转换为日期,然后运行查询

时间:2016-01-08 21:36:28

标签: sql-server

我有一个视图,我选择大约100行,以便用户轻松查询数据。在这个数据中,我有一个字段,有时是日期,有时是文本。日期或文本取决于类型。我投射到这样的日期值。

SELECT Cast(Value as Date) as column 
from Table
Where type = 1

当您尝试对此列运行查询时,从字符串转换日期和/或时间时,转换失败。这是查询。

 SELECT Column 
 From View 
 WHERE Column BETWEEN '01/01/2015'  AND '12/31/2015'  

我有另一个字段是日期,如果我在此查询中替换它,则查询有效。同样,整个表格中的数据也会加载。任何想法都表示赞赏。感谢

基本上,我需要这个查询才能工作,而不是给我上面描述的错误。

select cast(value as date) 
from Value
where type = 1
and cast(value as date) between '01/01/2015' and '12/31/2015'

1 个答案:

答案 0 :(得分:0)

我的猜测是你在该列中有条目无法转换为日期时间。您可以通过运行

找到它们
Select * from table where isdate(value) = 0