我在microsoft sql server 05中有一个程序,他的工作是接听电话并根据用户ID将其发送到其他数据库。我无法正确发送日期时间(生日)。这是一个缩写的代码段...
ALTER procedure [dbo].[spAddCustomer]
@ID as integer = 125, @databaseID as integer = 40, @name as varchar = 'd k', @birth_date as datetime = '2011/01/17 08:28:01'
as
--get database by @ID of user
SELECT @DataBaseName=t.DataBaseName
FROM [List].[dbo].[users] U
inner join tblList t on t.ID=U.[DataBaseID]
where U.USERID=@ID
--do insert into appropriate database
Declare @sql as varchar(8000)
Set @sql='
INSERT INTO ['+@DataBaseName+'].dbo.[customer]
( [Name], [Birth Date] )
value ( '''+@name+''','''+@birth_date+''');
'
print @sql
exec(@sql)
update customer set DateProcessed=getDate() where ID=@ID'
我尝试使用'''+convert(datetime,@birth_date,120)+'''
它不起作用
我如何让这个工作正常?
谢谢你能给予的任何帮助!
戴夫k。
答案 0 :(得分:1)
我尝试过使用过 '''+ convert(datetime,@ birth_date,120)+'''它不起作用。
试试这个:
'''+convert(VarChar(20),@birth_date,120)+'''
基本上,您构建的是一个在不同数据库上执行的字符串。 @birth_date是一个日期时间,因此您需要先将其转换为字符串。