У меня проблема с SQL Server, я создал хранимую процедуру с параметрами, указанными ниже:
CREATE PROCEDURE [dbo].[insertTblBatch]
(@VoucherNo [NVARCHAR](20),
@Reference [NVARCHAR](50),
@VoucherDate [DATETIME],
@ProductCode [NVARCHAR](30),
@WareHouse [NVARCHAR](20),
@Type [CHAR](10),
@batch [NVARCHAR](50),
@Factor1 [NVARCHAR](50),
@Factor2 [NVARCHAR](50),
@MfgDate [DATETIME],
@ExpDate [DATETIME],
@Quantity [FLOAT],
@LineNo [NUMERIC](18, 0),
@IsBatch [INT],
@Flag [INT],
@Code [NVARCHAR](20),
@ReplacedFor [NVARCHAR](20),
@StockOutCostPrice [FLOAT],
@EngineNo [NVARCHAR](30),
@LicenseNo [NVARCHAR](30))
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO tblBatchSerialNos ([VoucherNo], [Reference], [VoucherDate],[ProductCode], [WareHouse], [Type], [SerialNo], [Factor1], [Factor2], [MfgDate], [ExpDate], [Quantity], [LineNo], [IsBatch], [Flag], [Code], [ReplacedFor], [StockOutCostPrice], [EngineNo], [LicenseNo])
VALUES (@VoucherNo, @Reference, @VoucherDate, @ProductCode, @WareHouse, @Type, @batch, @Factor1, @Factor2, @MfgDate, @ExpDate, @Quantity, @LineNo, @IsBatch, @Flag, @Code, @ReplacedFor, @StockOutCostPrice, @EngineNo, @LicenseNo)
Пока я пытался ввести «2018.05.16» в качестве ввода для @batch
, SQL Server возвращает ошибку
Ошибка преобразования типа данных nvarchar в datetime
Я не могу указать @batch
как datetime
, потому что ввод не только дата, это может быть 'AA-20' или 'OB-CS004A' и т. Д. @batch
является вводом для столбца [SerialNo]
тип данных для этого столбца nvarchar(50)
.