.NET C#mysql SUBSTRING给了我System.Byte []?

时间:2010-06-04 11:25:25

标签: c# asp.net mysql substring

这段代码:

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来获取年份。

2 个答案:

答案 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();

就你使用这个别名而言。