Я импортирую хранимую процедуру из SQL Server 2008 в Excel 2016 и получаю сообщение об ошибке при ее выполнении в Excel:
Ошибка преобразования типа данных nvarchar в дату
Это хранимая процедура [LA_VOTER].[Temp].[dmv_import]
:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Arash B
-- Create date: 6/5/2018
-- Description: test for creating dynamic 'Data Entry Signature Verification' worksheeet
-- =============================================
ALTER PROCEDURE [Temp].[dmv_import]
@date DATE = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @date_work DATE
IF @date IS NULL
SET @date_work = GETDATE()
ELSE
SET @date_work = @date
/*count of processed*/
SELECT
vi.import_code as 'DMV Category',
SUM(CASE WHEN CONVERT(date, vi.createdate, 101) = @date_work THEN 1 ELSE 0 END) AS 'received',
SUM(CASE WHEN CONVERT(date, vi.processed_date, 101) = @date_work THEN 1 ELSE 0 END) AS 'processed'
FROM
DIMSNet.dbo.voter_import vi
WHERE
vi.import_type IN ('DMV')
AND import_code < 13
GROUP BY
import_code
END
Я обращаюсь к ней в Excel через Данные - Из других источников, показанных ниже.
Я выбираю из SQL и ввожу «slavote-dr1 ”для подключения к серверу;«DIMSNet» - выбранная таблица и любая случайная таблица, как указано в инструкциях.
Как только я попадаю во всплывающее окно «Импорт данных», я выбираю ячейку на листе Excel, на которую хочу перетащить таблицу, и нажимаю накнопка «Свойства».
Выберите вкладку «Определение» и измените тип команды на «SQL».
Введен исполняемый файл в «Текстовое поле команды».Поскольку база данных используется для подключения, я вставил полный путь для хранимой процедуры в командную строку.
Execute "LA_VOTER"."Temp"."dmv_import" ","
Я нажимаю «ОК» и возвращаюсь в окно «Импорт данных».Я нажимаю «ОК», чтобы импортировать таблицу.
Я получаю ошибку, указанную выше.
Я посмотрел на скрипт и не смог понять, откуда возникла эта ошибка.Можете ли вы что-нибудь предложить?
PS.Добавлено 12.06.18 ----- SP отлично работает на SQL.Проблема возникает только при импорте в Excel.