我有这个查询将数据插入图表。 问题是,当图表出现时...日期显示为数字,我希望它出现在之前的月份名称中,并且如果可能的话也是年份。
[HttpPost]
public JsonResult AjaxMethod()
{
string query = "SELECT DataEntrada, COUNT(ID_Reserva) TotalReservas From Reserva Group by DataEntrada";
var constr = ConfigurationManager.ConnectionStrings["Hotel"].ConnectionString;
List < object > chartData = new List<object>();
chartData.Add(new object[]
{
"DataEntrada", "TotalReservas"
});
using(SqlConnection con = new SqlConnection(constr))
{
using(SqlCommand cmd = new SqlCommand(query))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
using(SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read()) {
chartData.Add(new object[]
{
sdr["DataEntrada"], sdr["TotalReservas"]
});
}
}
con.Close();
}
}
return Json(chartData);
}
最终结果
答案 0 :(得分:0)
那是因为你以Json格式返回数据库的datetime字段,尝试首先将其转换为字符串,如下所示:
while (sdr.Read())
{
chartData.Add(new object[]
{
((DateTime?)sdr["DataEntrada"]).ToString("dd/MM/yyyy"), sdr["TotalReservas"]
});
}
我假设你的名字和数据库字段名称你也是巴西人,所以你的日期格式是(年/月/日)
或强>
如果你真的需要日期时间格式的图表插件,你可以用JavaScript here转换它, 甚至在你的JSON中添加一个新字段,在日期时间json
之外的字符串中添加格式化日期时间修改强>
要格式化日期以显示月份名称,请使用((DateTime?)sdr["DataEntrada"]).ToString("MMMM")