这段代码:
SELECT SUBSTRING(posted,1,4) as year FROM styles
reader = cmd1.ExecuteReader(CommandBehavior.CloseConnection);
reader.Read();
Response.Write(reader[0].ToString());
我只打印出字符串“System.Byte []”。怎么样?
如果我使用软件Mysql Query Browser,我会从我的数据库中获取实际的字符串。
我理解“Byte []”是一个arraylist但是如何将其转换为纯字符串?
我的数据库中的“已发布”字段包含“2010-04-04 13:23:00”之类的日期,我希望只使用SUBSTRING来获取年份。
答案 0 :(得分:0)
您需要使用.GetString
即
reader[0].GetString(0);
此外,您可以使用MySQL YEAR函数从您的日期中提取年份。
即
SELECT YEAR(date_field) FROM table
答案 1 :(得分:0)
正确的查询是
SELECT DISTINCT SUBSTRING(CONVERT(varchar, posted, 111),1,4) as year FROM styles
等于
SELECT STR(YEAR(posted)) as year FROM styles-- YEAR returns int statement
转换第一个参数,而不是提取子串。 111 - 转换格式:http://www.mssqltips.com/tip.asp?tip=1145
也可以尝试
reader["year"].ToString();
就你使用这个别名而言。