风频浪劲 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 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
    • ¥20 yolov5自定义Prune报错,如何解决?