Sql server 2008 SQL Server转换函数查询
我在一个查询中使用了convert函数Sql server 2008 SQL Server转换函数查询,sql-server-2008,Sql Server 2008,我在一个查询中使用了convert函数 Select * from tblMas where FromDate >= CONVERT(varchar(10), @FromDate,112) @FromDate是一个Datetime参数,我不知道为什么,但是这个查询很好 虽然它不应该是FromDate的DateTime字段,我们正在将它与Varchar字段进行比较 CONVERT(varchar(10),@FromDate,112)以yyyyMMdd格式返回结果。我不知道SQL Serve
Select * from tblMas where FromDate >= CONVERT(varchar(10), @FromDate,112)
@FromDate
是一个Datetime
参数,我不知道为什么,但是这个查询很好
虽然它不应该是FromDate
的DateTime
字段,我们正在将它与Varchar
字段进行比较
CONVERT(varchar(10),@FromDate,112)
以yyyyMMdd
格式返回结果。我不知道SQL Server是如何比较这个结果并返回正确的结果的。在比较之前,将有一个从varchar到datetime的隐式类型转换
如果您查看查询平面,您将看到类似的内容
<ScalarOperator ScalarString="[FromDate]>=CONVERT_IMPLICIT(datetime,CONVERT(varchar(10),[@FromDate],112),0)">
在SQLServer2008中,您可以使用
select *
from tblMas
where FromDate >= cast(@FromDate as date)
好的,但我认为这不是正确的方法,因为会做出额外的转换努力,你的建议是什么?
select *
from tblMas
where FromDate >= cast(@FromDate as date)