У меня есть отчет SQL-сервер, которые имеют STARTDATE и EndDate даты-время параметров, но когда я указать DateTime в них ошибку отчета шоупроблемы преобразования в параметре даты и времени в SQL Server 2008
An error has occurred during report processing.
Exception has been thrown by the target of an invocation.
Conversion failed when converting date and/or time from character string.
StartDate параметр Я имеет значение 6/22/2011 12:00:00 AM при установке в качестве параметра отчета в C# код, мой код хранимой процедуры является
create PROCEDURE Price
@Startdate datetime = null,
@Enddate datetime = null
AS
declare @sql varchar(8000)
set @sql = 'SELECT CommodityPrice.dtm_Date FROM Commodity
INNER JOIN CommodityPrice ON Commodity.int_CommodityId = CommodityPrice.int_CommodityId where Commodity.vcr_HSCode is not null '
IF (@Startdate <> '')
BEGIN
SET @sql = @sql + ' and CommodityPrice.dtm_Date >= '+ @Startdate
END
IF (@Enddate <> '')
BEGIN
SET @sql = @sql + ' and CommodityPrice.dtm_Date <= '+ @Enddate
END
set @sql = @sql+ ' order by CommodityPrice.dtm_Date desc'
exec (@sql)
Как я могу удалить эту проблему? Я создаю динамический sql, потому что у меня есть и другие параметры.
Учитывая проблему пустой строки - возможно, было бы лучше передать значение DateTime в качестве строки в отчет. Тогда можно было бы отправить string.Empty. – Gambrinus
@Gambrinus: не очень. Если вы смешиваете строки и даты, вы получите неожиданные ошибки преобразования из-за DMY, MDY и т. Д. – gbn
Im использует динамический SQL, потому что у меня есть 7 других параметров типа int, varchar и bit –