Sql server 2005 通过-set@sql=';从插入时的字符串转换日期时间';
我在microsoft sql server 05中有一个过程,它的工作是接听电话并根据用户id将其发送到其他数据库。我无法正确发送日期时间(生日)。这是一个简短的代码段Sql server 2005 通过-set@sql=';从插入时的字符串转换日期时间';,sql-server-2005,insert,set,Sql Server 2005,Insert,Set,我在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:0
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\u date,120)+'
它不起作用。我如何才能让它正常工作?
谢谢你能给我的帮助
戴夫k 我试过使用 ''转换(日期时间,@birth_date,120)+''它不起作用 试试这个:
'''+convert(VarChar(20),@birth_date,120)+'''
基本上,您正在构造一个在不同数据库上执行的字符串@出生日期是日期时间,因此需要先将其转换为字符串
我试过使用
''转换(日期时间,@birth_date,120)+''它不起作用
试试这个:
'''+convert(VarChar(20),@birth_date,120)+'''
基本上,您正在构造一个在不同数据库上执行的字符串@出生日期是一个日期时间,因此您需要先将其转换为字符串。我几乎马上否定了您的答案,因为“我要插入的数据库的[出生日期]是datetime类型,我无法更改它。”但我决定测试它。它似乎喜欢它。我现在必须做更多的工作,因为这是一个比我现在展示的脚本大得多的脚本,但我会确保在我确认它有效后,尽快将你标记为答案!谢谢我几乎马上就不相信你的回答,因为“对于我插入的数据库,[出生日期]是datetime类型,我无法更改它。”但我决定测试它。它似乎喜欢它。我现在必须做更多的工作,因为这是一个比我现在展示的脚本大得多的脚本,但我会确保在我确认它有效后,尽快将你标记为答案!谢谢