我有一个SQL查询将日期时间转换为106格式,之后我将空白空间替换为-
,这需要花费太多时间将近4分钟执行。举例如下为什么REPLACE查询在SQL Server 2008中花费很多时间
REPLACE(CONVERT(VARCHAR,GETDATE(),106),' ','-') DDate
输出19月 - 2015年
没有取代我的查询花费0秒
是否有任何其他方式来获得自定义格式的日期如上所述? 我明白REPLACE
会比较结果项目的集合。 但它不应该花4分钟来取代100到200的数据。
有什么想法?
查询作为
SELECT TOP(ISNULL(100,'10000'))
FD.Flight 'Select'
,FD.Filename
,ISNULL(FD.RefNo, 'FLT-' + CONVERT(VARCHAR, FD.FLID)) 'FlightID'
,FD.Registration
,ISNULL(FD.FlightNumber, '') FlightNumber
**,REPLACE(CONVERT(VARCHAR,FD.TKD,106),' ','-') TODate**
,FD.TOGMT
**,REPLACE(CONVERT(VARCHAR,FD.LKD,106),' ','-') LDDate**
,FD.LDGMT
,FD.Origin
,FD.Destination
,FD.Pilot
,FD.CoPilot
**,REPLACE(CONVERT(VARCHAR,FD.DumpDate,106),' ','-') DDate**
,FD.UserName
,FD.FlightCount
,FD.AcVariation
FROM
dbo.vw_FlightDetails FD
LEFT JOIN [dbo].FlightRemark RM ON RM.FlightID = FD.FLID
WHERE
1=1
ORDER BY
FD.TKD DESC
,FD.TOGMT DESC
大胆区是我面临的
哪个版本的sql server?因为Sql Server 2012及以上版本有'FORMAT'功能。 – 2015-04-01 07:04:38
我怀疑这是由replace()调用引起的。您必须向我们展示* complete *查询 - 理想情况下,包括所有涉及到create table语句的表的定义以及执行计划是否带有replace()调用。 – 2015-04-01 07:06:29
我不认为这是由替换 – 2015-04-01 07:10:17