在查询中将DateTime转换为月份

时间:2018-04-09 14:08:41

标签: sql datetime

我有这个查询将数据插入图表。 问题是,当图表出现时...日期显示为数字,我希望它出现在之前的月份名称中,并且如果可能的话也是年份。

[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);
}

最终结果

enter image description here

1 个答案:

答案 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")