老是提示从字符串转换日期和/或时间时,转换失败。

zhengyingcan 2016-03-16 08:55:40
declare @sql varchar(8000)
set @sql = 'select [仓库],[仓库名称],[品号] '
select @sql = @sql + ' , max(case CA09 when ''' + CA09 + ''' then CA082 else 0 end) [' + CA09 + ']'+'需求'+' , max(case CA09 when ''' + CA09 + ''' then CA08 else 0 end) [' + CA09 + ']'+'缺料'
from (select distinct CA09 from AZCALIST where CA09 is not null) as a
set @sql = @sql + ' from #tb2 group by [仓库],[仓库名称],[品号] '

运行以上代码老是提示如下错误

消息 241,级别 16,状态 1,第 3 行
从字符串转换日期和/或时间时,转换失败。

CA09列 是日期格式, 但是我已经加了‘’‘ ,请高人帮忙看一下 该如何修正,非常感谢。
...全文
3706 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int userID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
string UserName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
string UserGender = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text;
string CreatedTime = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text;
string ispass = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text;
SqlConnection conn=
new SqlConnection(ConfigurationManager.ConnectionStrings["Constr"].ConnectionString);
string sqlString = "update UserInfo set UserName='" + UserName;
sqlString += "',UserGender='" + UserGender + "',CreatedTime='" + CreatedTime;
sqlString += "',IsPass='" + ispass + "'where UserID=" + userID;
conn.Open();
SqlCommand cmd = new SqlCommand(sqlString, conn);
cmd.ExecuteNonQuery();
GridView1.EditIndex = -1;
ShowAllUser();
conn.Close();
}
可是俺这个怎么办
zhengyingcan 2016-03-17
  • 打赏
  • 举报
回复
可以了,谢谢中国风版主,非常 感谢
中国风 2016-03-17
  • 打赏
  • 举报
回复
需求和缺料位置调整一下
DECLARE @sql VARCHAR(8000);
SET @sql = 'select [仓库],[仓库名称],[品号] ';
SELECT  @sql = @sql + ' , max(case CA09 when ''' + CA09
        + ''' then CA082 else 0 end) [' + CA09 + '需求]' 
        + ' , max(case CA09 when ''' + CA09 + ''' then CA08 else 0 end) ['
        + CA09 + '缺料]' 
FROM    ( SELECT DISTINCT
                    CONVERT(VARCHAR(10),CA09,120) AS CA09
          FROM      AZCALIST
          WHERE     CA09 IS NOT NULL
        ) AS a;
SET @sql = @sql + ' from #tb2 group by [仓库],[仓库名称],[品号] ';
zhengyingcan 2016-03-17
  • 打赏
  • 举报
回复
我print 出来的结果 如下 select [仓库],[仓库名称],[品号],[品名],[规格],[单位],[主要来源],[标准采购量], [采购周期],[历史月用量],[对应采购员车间],[提前到位天数],[领料合计],[现有库存量], [生产已领],[采购生产未入库],[入库未审核数量],[能到位日期],[缺料到位说明],[能否到位] , max(case CA09 when '2016-02-28' then CA082 else 0 end) [2016-02-28]需求 , max(case CA09 when '2016-02-28' then CA08 else 0 end) [2016-02-28]缺料 , max(case CA09 when '2016-02-09' then CA082 else 0 end) [2016-02-09]需求 , max(case CA09 when '2016-02-09' then CA08 else 0 end) [2016-02-09]缺料 , max(case CA09 when '2016-02-10' then CA082 else 0 end) [2016-02-10]需求 , max(case CA09 when '2016-02-10' then CA08 else 0 end) [2016-02-10]缺料 , max(case CA09 when '2016-02-07' then CA082 else 0 end) [2016-02-07]需求 , max(case CA09 when '2016-02-07' then CA08 else 0 end) [2016-02-07]缺料 , max(case CA09 when '2016-02-06' then CA082 else 0 end) [2016-02-06]需求 , max(case CA09 when '2016-02-06' then CA08 else 0 end) [2016-02-06]缺料 from #tb2 group by [仓库],[仓库名称],[品号],[品名],[规格],[单位],[主要来源],[标准采购量],[采购周期], [历史月用量],[对应采购员车间],[提前到位天数],[领料合计],[现有库存量],[生产已领], [采购生产未入库],[入库未审核数量],[能到位日期],[缺料到位说明],[能否到位] 提示 [2016-02-28]需求 , 语法错误
zhengyingcan 2016-03-17
  • 打赏
  • 举报
回复
引用 2 楼 roy_88 的回复:
DECLARE @sql VARCHAR(8000); SET @sql = 'select [仓库],[仓库名称],[品号] '; SELECT @sql = @sql + ' , max(case CA09 when ''' + CA09 + ''' then CA082 else 0 end) [' + CA09 + ']' + '需求' + ' , max(case CA09 when ''' + CA09 + ''' then CA08 else 0 end) [' + CA09 + ']' + '缺料' FROM ( SELECT DISTINCT CONVERT(VARCHAR(10),CA09,120) AS CA09 FROM AZCALIST WHERE CA09 IS NOT NULL ) AS a; SET @sql = @sql + ' from #tb2 group by [仓库],[仓库名称],[品号] ';
改成以上,提示日期的错误没有了,又提示如下错误 消息 102,级别 15,状态 1,第 1 行 '需求' 附近有语法错误。
中国风 2016-03-17
  • 打赏
  • 举报
回复
在红色代码处转为字符串再加减就行了,字符和日期加减时,日期优先要显性转换
中国风 2016-03-17
  • 打赏
  • 举报
回复
DECLARE @sql VARCHAR(8000); SET @sql = 'select [仓库],[仓库名称],[品号] '; SELECT @sql = @sql + ' , max(case CA09 when ''' + CA09 + ''' then CA082 else 0 end) [' + CA09 + ']' + '需求' + ' , max(case CA09 when ''' + CA09 + ''' then CA08 else 0 end) [' + CA09 + ']' + '缺料' FROM ( SELECT DISTINCT CONVERT(VARCHAR(10),CA09,120) AS CA09 FROM AZCALIST WHERE CA09 IS NOT NULL ) AS a; SET @sql = @sql + ' from #tb2 group by [仓库],[仓库名称],[品号] ';
北冥小渔夫 2016-03-16
  • 打赏
  • 举报
回复
else 0

34,876

社区成员

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

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