You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询中将日期转为月份名称,优化图表日期显示格式

解决图表日期显示为数字、替换为月份名称+年份的问题

看起来你是想把查询返回的DataEntrada(日期字段)从数字格式转换成带月份名称和年份的格式,让图表展示更友好对吧?我给你两种可行的方案,你可以根据自己的需求选择:

方案一:直接在SQL查询中格式化日期

这是最直接的方式,让数据库返回已经格式化好的日期字符串,不用在代码里额外处理。假设你用的是SQL Server,我们可以用DATENAME函数获取月份名称,再拼接年份:

修改后的SQL查询语句:

SELECT 
    DATENAME(MONTH, DataEntrada) + ' ' + CAST(YEAR(DataEntrada) AS VARCHAR(4)) AS MonthYear,
    COUNT(ID_Reserva) AS TotalReservas 
FROM Reserva 
GROUP BY DATENAME(MONTH, DataEntrada), YEAR(DataEntrada), DataEntrada
ORDER BY DataEntrada

注意:GROUP BY里要同时包含月份名称、年份和原日期字段,保留原日期是为了保证结果按时间顺序排序,避免出现月份乱序的情况。

之后你的C#代码直接读取MonthYear字段,就能拿到带月份名称和年份的字符串了。

方案二:在C#代码中格式化日期

如果不想修改SQL查询,也可以在获取数据后,在C#里对日期做格式化处理。假设DataEntrada是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[] { "MonthYear", "TotalReservas" });
    
    using (SqlConnection con = new SqlConnection(constr))
    {
        using (SqlCommand cmd = new SqlCommand(query))
        {
            cmd.Connection = con;
            con.Open();
            using (SqlDataReader sdr = cmd.ExecuteReader())
            {
                while (sdr.Read())
                {
                    DateTime date = Convert.ToDateTime(sdr["DataEntrada"]);
                    // 生成"January 2024"格式的字符串,要缩写月份就用"MMM yyyy"
                    string monthYear = date.ToString("MMMM yyyy"); 
                    chartData.Add(new[] { monthYear, sdr["TotalReservas"] });
                }
            }
            con.Close();
        }
    }
    return Json(chartData);
}

要是需要中文月份(比如“2024年1月”),可以改成date.ToString("yyyy年MM月", new System.Globalization.CultureInfo("zh-CN"))。

额外小提示

如果你的DataEntrada是字符串类型而非DateTime,记得先把它转换成DateTime再格式化,避免出现转换错误。

内容的提问来源于stack exchange,提问作者user9480749

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:19:12