CREATE PROCEDURE GetDay
(
@datetime char(7),
@table char(6),
@watermetername nvarchar(100)
)
ASDECLARE @SQL AS nvarchar(3500)
SET @SQL='SELECT c_datetime,c_bzs FROM' + ' ' + @table
SET @SQL=@SQL + ' ' + 'where convert(char(7),c_datetime,102)=' +@datetime
SET @SQL=@SQL + ' ' + 'and convert(char(8),c_datetime,108)=' +'"00:00:00"'
SET @SQL=@SQL + ' ' + 'and Tag=' + @watermetername
SET @SQL=@SQL+ ' ' + 'ORDER BY c_datetime ASC'EXECUTE sp_executesql @SQL
这是我定义的PROCE 执行:exec GetDay '2005.01','sc2005','GSDYH_JXC_LJLL'
错误提示
服务器: 消息 207,级别 16,状态 3,行 1
列名 'GSDYH_JXC_LJLL' 无效。
Tag在数据库的定义是char(25)这是什么错误
(
@datetime char(7),
@table char(6),
@watermetername nvarchar(100)
)
ASDECLARE @SQL AS nvarchar(3500)
SET @SQL='SELECT c_datetime,c_bzs FROM' + ' ' + @table
SET @SQL=@SQL + ' ' + 'where convert(char(7),c_datetime,102)=' +@datetime
SET @SQL=@SQL + ' ' + 'and convert(char(8),c_datetime,108)=' +'"00:00:00"'
SET @SQL=@SQL + ' ' + 'and Tag=' + @watermetername
SET @SQL=@SQL+ ' ' + 'ORDER BY c_datetime ASC'EXECUTE sp_executesql @SQL
这是我定义的PROCE 执行:exec GetDay '2005.01','sc2005','GSDYH_JXC_LJLL'
错误提示
服务器: 消息 207,级别 16,状态 3,行 1
列名 'GSDYH_JXC_LJLL' 无效。
Tag在数据库的定义是char(25)这是什么错误
(
@datetime char(7),
@table char(6),
@watermetername nvarchar(100)
)
ASDECLARE @SQL AS nvarchar(3500)
SET @SQL='SELECT c_datetime,c_bzs FROM' + ' ' + @table
SET @SQL=@SQL + ' ' + 'where convert(char(7),c_datetime,102)=' +@datetime
SET @SQL=@SQL + ' ' + 'and convert(char(8),c_datetime,108)=' +'"00:00:00"'
SET @SQL=@SQL + ' ' + 'and Tag=''' + @watermetername+''''
SET @SQL=@SQL+ ' ' + 'ORDER BY c_datetime ASC'EXECUTE sp_executesql @SQL
(
@datetime char(7),
@table char(6),
@watermetername nvarchar(100)
)
ASDECLARE @SQL AS nvarchar(3500)
SET @SQL='SELECT c_datetime,c_bzs FROM' + ' ' + @table
SET @SQL=@SQL + ' ' + 'where convert(char(7),c_datetime,102)=' +@datetime
SET @SQL=@SQL + ' ' + 'and convert(char(8),c_datetime,108)=' +'"00:00:00"'
SET @SQL=@SQL + ' ' + 'and Tag=''' + @watermetername + ''''
SET @SQL=@SQL+ ' ' + 'ORDER BY c_datetime ASC'EXECUTE sp_executesql @SQL
(
@datetime char(7),
@table char(6),
@watermetername nvarchar(100)
)
ASDECLARE @SQL AS nvarchar(3500)
SET @SQL='SELECT c_datetime,c_bzs FROM' + ' ' + @table
SET @SQL=@SQL + ' ' + 'where convert(char(7),c_datetime,102)=''' +@datetime+''''
SET @SQL=@SQL + ' ' + 'and convert(char(8),c_datetime,108)=' +'''00:00:00'''
SET @SQL=@SQL + ' ' + 'and Tag=''' + @watermetername+''''
SET @SQL=@SQL+ ' ' + 'ORDER BY c_datetime ASC'EXECUTE sp_executesql @SQL
用print @SQL
SELECT c_datetime,c_bzs FROM sc2005
where convert(char(7),c_datetime,102)=2005.01 and convert(char(8),c_datetime,108)="00:00:00"
and Tag=GSDYH_JXC_LJLL
ORDER BY c_datetime ASC一看就知道有问题。。
where convert(char(7),c_datetime,102)=2005.01 and convert(char(8),c_datetime,108)="00:00:00"
and Tag=GSDYH_JXC_LJLL
--这是有问题的,正确有格式是
where convert(char(7),c_datetime,102)='2005.01' and convert(char(8),c_datetime,108)='00:00:00'
and Tag='GSDYH_JXC_LJLL'
所以存储也要做相应的修改。。CREATE PROCEDURE GetDay
(
@datetime char(7),
@table char(6),
@watermetername nvarchar(100)
)
ASDECLARE @SQL AS nvarchar(3500)
SET @SQL='SELECT c_datetime,c_bzs FROM' + ' ' + @table
SET @SQL=@SQL + ' ' + 'where convert(char(7),c_datetime,102)=''' +@datetime+''''
SET @SQL=@SQL + ' ' + 'and convert(char(8),c_datetime,108)=' +'''00:00:00'''
SET @SQL=@SQL + ' ' + 'and Tag=''' + @watermetername+''''
SET @SQL=@SQL+ ' ' + 'ORDER BY c_datetime ASC'--print @SQL returnEXECUTE sp_executesql @SQL
GO