2017-10-07 42 views
2

我打電話,我試着投一個數字,日期時間(因爲我從Excel抓住它,所以它轉換日期數字的存儲過程:使用select來確定存儲過程的參數

exec UpdateInvoices @InvoiceDate = select cast(cast(42109 as datetime) as date) 

這是不行的,我得到不正確的語法選擇附近。

什麼是這樣做的正確方法?

+0

你不想設置'@ InvoiceDate'分開,然後把它傳遞給SP正常的任何具體的原因是什麼? –

回答

1

您需要先設置你的參數。

DECLARE @DateParam date 

SELECT @DateParam = cast(cast(42109 as datetime) as date) 
EXEC UpdateInvoices @InvoiceDate = @DateParam 
+0

試圖做到這一點,因爲我有一個自動填充在Excel中填充它 – Evonet

+1

@Evonet不知道它是否可以在一行中完成。其他的選擇是修改你的存儲過程以接收proc中的'varchar'和cast值。 –

+0

@Evonet你的excel列填充了你提供的查詢嗎?你能改變這個邏輯來生成一個'sp_executesql'語句而不是'exec' proc語句嗎?這可以接受嗎?如果是的話,你可以把我提供的查詢作爲參數提供給'sp_executesql'。 –

1

就失去了select

exec UpdateInvoices @InvoiceDate = cast(cast(42109 as datetime) as date) 
+0

我得到第二個演員語法錯誤 – Evonet