风频浪劲 2014-09-25 03:12 采纳率: 0%
浏览 999

exec sp_executesql转换datetime导致精度(秒)丢失

我觉得是下面这个 exec sp_executesql 导致精度丢失的!因为上面select * from ##TAbleIndex时间秒还在!
exec sp_executesql @timestr, N'@p1 varchar(50) output,@p2 nvarchar(150) output',@时间 output, @标题 output
select @时间
select @时间 出来的结果就丢失时间秒了!
还有,我把全局临时表改成普通表,还是丢失时间秒!
以下是全部代码:


use wangning868hexun
declare @num int
declare @sqlstr nvarchar( 3000 )
declare @时间 datetime
declare @标题 nvarchar(150)
declare @timestr nvarchar( 1000 )

SELECT *, ROW_NUMBER () OVER (ORDER BY 时间 ) AS RowIndex into ##TableIndex FROM wangning868hexun . dbo . 和讯博客6
--select * from ##TableIndex
set @num =2109
WHILE @num>=2109 and @num<=2120

begin
set @timestr = 'select @p1=时间,@p2=标题 from ##TableIndex WHERE ##TableIndex. RowIndex=' + cast( @num as varchar )
exec sp_executesql @timestr, N'@p1 varchar(50) output,@p2 nvarchar(150) output',@时间 output, @标题 output
select @时间' --选择当行的时间
set @sqlstr = 'bcp "select case when 1=1 then ''

''+标题+''
'' end as title ,'
set @sqlstr = @sqlstr + 'format(时间,''yyyy-MM-dd hh:mm:ss''),case when 1=1 then 出处+''
'' end as source,内容 from ##TableIndex Where ##TableIndex.RowIndex = ' + cast ( @num as varchar)
set @sqlstr = @sqlstr + '" queryout "d:\123\'+ cast(format( @时间,'yyyy-MM-dd hhmmss' ) as varchar(50))+' ' + cast(replace (@标题, ':',':' ) as varchar( 150)) + '.txt" -c -T' --防止标题中有半角冒号
--print @sqlstr
exec master . dbo . xp_cmdshell @sqlstr
set @num =@num + 1
END
drop table ##TableIndex
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 保护模式-系统加载-段寄存器