我想使用过程输入到表中DOB列的日期为30/10/1988
alter procedure addCustomer
@userName varchar(50),
@userNIC varchar(50),
@userPassword varchar(100),
@userDOB datetime,
@userTypeID int,
@userEmail varchar(50),
@userTelephone int,
@userAddress char(100),
@userCityID int,
@status int output
as
declare @userID int
declare @eid int
declare @tid int
declare @aid int
execute getLastRaw 'userID','tblUserParent', @userID output
insert into tblUserParent values (@userID, @userName, @userNIC, @userPassword, @userDOB, @userTypeID)
execute getLastRaw 'addressID','tblAddress', @aid output
insert into tblAddress values (@aid, @userAddress, @userID, @userCityID)
execute getLastRaw 'emailID','tblEmail', @eid output
insert into tblEmail values (@eid, @userEmail, @userID)
execute getLastRaw 'telephoneID','tblTelephoneNO', @tid output
insert into tblTelephoneNO values (@tid, @userTelephone , @userID)
insert into tblUserCustomer values (@userID, @eid , @tid, @aid)
...但是当我像这样输入'30 / 10/1988'时会给出错误信息>
消息8114,级别16,状态5,过程addCustomer,行0将数据类型varchar转换为datetime时出错。
...但是当我只输入1988年10月30日时'/'
附近的语法不正确我该如何解决?
我想使用过程更改过程addCustomer @userName varchar(50),@ userNIC varchar(50),@ userPassword varchar(100),@ userDOB将表中DOB列的日期输入为30/10/1988 ...
以下内容可在SQL Server和MySql中正常工作:yyyy-mm-dd
,如下所示:
[如果您确实希望避免基于不明确日期的可能性,那么您应该始终在已经选择的两个unambiguous date formats答案之一中输入它,并且它是有效的,但是我相信您会传播知识;)
查看是否存在可以更改的文化设置,以允许您使用dd / mm / yyyy。我相信这是期望的mm / dd / yyyy。
解决该问题的一种可能的简便方法是使用日期格式,在mm/dd/yyyy
和dd/mm/yyyy
之间没有歧义,例如dd-mmm-yyyy
,例如:30-OCT-1988