我有一个简单的存储过程来返回日期时间。 e.g:
create procedure sp_get_date (@db_date datetime output)as begin select @db_date ='2017-04-26 13:20:32.313' end
使用SQLNCLI11本机客户端处理PowerBuilder应用程序内的datatbase。
DECLARE get_date_proc PROCEDURE for dbo.sp_get_date @db_date = :dt_today output using sqlca;
EXECUTE get_date_proc;
FETCH get_date_proc INTO :dt_today;
t_now = time(dt_today)
t_now的预期结果是“13:20:32。 313000 ”
使用SQL sever 2014时,t_now值在13:20:32正确。 313000
但是对于SQL Server 2016,值为13:20: 3133333
这是本机客户端库与SQL Server 2016一起使用的问题吗?存储的procudure是否返回datatime2值?
非常感谢。
答案 0 :(得分:0)
看起来你遇到了这个sql server bug(https://connect.microsoft.com/SQLServer/Feedback/Details/2805477)。因此,最好的方法似乎是将参数的数据类型转换为datetime2。或者,它可能有助于在PB应用程序中将该过程实现为RPC;因为我还在使用ss 2012,所以我不能说这是否有用。