新增的问题

test88666 2014-09-04 07:07:11
代码如下:

Create Table #Temp
(
OrderDay Datetime
)
Declare @Day Datetime
Declare @Sql Varchar(8000)
Set @Day='2014/10/10'
Set @Sql='Insert into #Temp(OrderDay) Valuse ('+@Day+')'
Exec(@Sql)
Select * from #Temp
Drop Table #Temp

执行之后出现提示如下:
Server: Msg 241, Level 16, State 1, Line 8
Syntax error converting datetime from character string.
请大家帮忙,多谢了!
...全文
163 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
test88666 2014-09-05
  • 打赏
  • 举报
回复
引用 5 楼 Tiger_Zhao 的回复:
Create Table #Temp
(
	OrderDay		Datetime
)
Declare @Day varchar(10) -- 直接用字符串
Declare @Sql  Varchar(8000)
Set @Day='2014/10/10'
Set @Sql='Insert into #Temp(OrderDay) Values ('''+@Day+''')' -- 日期值要有引号,Values 拼写错误
Exec(@Sql)
Select * from #Temp
Drop Table #Temp
多谢!
Tiger_Zhao 2014-09-05
  • 打赏
  • 举报
回复
Create Table #Temp
(
OrderDay Datetime
)
Declare @Day varchar(10) -- 直接用字符串
Declare @Sql Varchar(8000)
Set @Day='2014/10/10'
Set @Sql='Insert into #Temp(OrderDay) Values ('''+@Day+''')' -- 日期值要有引号,Values 拼写错误
Exec(@Sql)
Select * from #Temp
Drop Table #Temp
test88666 2014-09-05
  • 打赏
  • 举报
回复
人工置顶,人工置顶!
xzb001 2014-09-04
  • 打赏
  • 举报
回复
需要把 datetime类型的@Day先转换为varchar类型,才能和varchar变量@Sql做字符串合并。

Set @Sql='Insert into #Temp(OrderDay) Valuse ('+convert(varchar(10),@Day,120)+')'
Jessie_U 2014-09-04
  • 打赏
  • 举报
回复
英文的意思是无法将字符串类型转换成日期数据类型
--小F-- 2014-09-04
  • 打赏
  • 举报
回复
把SELECT语句也写入到@SQL里面去才可以 临时表只能在一个批使用。 要么就用全局临时表或者实体表

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧