Хранимая процедура SQL Server 2008 - PullRequest
0 голосов
/ 01 февраля 2010

Я не могу сохранить переменные типа данных date с помощью хранимой процедуры. Мой код:

ALTER PROCEDURE [dbo].[Access1Register] 
 -- Add the parameters for the stored procedure here
 @MobileNumber int, 
 @CitizenName varchar(50),
 @Dob char(8),
 @VerificationCode int
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
    select CAST(@dob As DATE)
 Insert Into Access1 (MobileNo,CitizenName,Dob,VerificationCode)
 values(@MobileNumber,@CitizenName,@Dob,@VerificationCode)
go

Если я выполняю эту процедуру, она выполняется, но в переменной типа даты произошла ошибка. Это поднимает ошибку как invalid item '-'.

Ответы [ 3 ]

3 голосов
/ 01 февраля 2010

Это зависит от того, как вы передадите значения @Dob.

Лучше всего использовать формат ISO8601 - «ГГГГММДД», поскольку он всегда будет правильно преобразовываться в ДАТУ - независимо от языка и региональных настроек на компьютере с SQL Server.

2 голосов
/ 01 февраля 2010

Это зависит от формата даты, которую вы передаете.

Если это 'mm-dd-yy', вы можете использовать CONVERT(DATE, @Dob, 110), если это 'dd-mm-yy', то CONVERT(DATE, @Dob, 105).

0 голосов
/ 12 сентября 2012

В каком формате вы передаете значения @Dob? И какую именно ошибку вы получаете?

Если вы передадите значения @Dob в формате mm-dd-yy, оно должно работать правильно и ошибок не будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...