Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlserver中的AnnotationChart日期格式_Sql_Datetime_Google Visualization_Data Visualization - Fatal编程技术网

sqlserver中的AnnotationChart日期格式

sqlserver中的AnnotationChart日期格式,sql,datetime,google-visualization,data-visualization,Sql,Datetime,Google Visualization,Data Visualization,嗨,我正在尝试实现一个从SQLServer获取数据的注释图表。当数据返回时,代码正在工作。我的问题是执行google.visualization.DataTable.addRow时日期/日期时间的格式 sqlserver返回的日期格式为2014-03-19 12:00:00 AM 如何更改此日期格式以插入数据表 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Defaul

嗨,我正在尝试实现一个从SQLServer获取数据的注释图表。当数据返回时,代码正在工作。我的问题是执行google.visualization.DataTable.addRow时日期/日期时间的格式

sqlserver返回的日期格式为2014-03-19 12:00:00 AM

如何更改此日期格式以插入数据表

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="js/jquery.min.js" type="text/javascript"></script>
    <script type='text/javascript' src='http://www.google.com/jsapi'></script>
    <script type="text/javascript">
        google.load('visualization', '1.1', { packages: ['annotationchart'] });
    </script>
    <script type="text/javascript">
        $(document).ready(function () {
            $.ajax({
                type: 'POST',
                dataType: 'json',
                contentType: 'application/json',
                url: 'Default.aspx/GetData',
                data: '{}',
                success:
                    function (response) {
                        drawVisualization(response.d);
                    }

            });
        })

        function drawVisualization(dataValues) {
            var data = new google.visualization.DataTable();
            data.addColumn('datetime', 'Column Name');
            data.addColumn('number', 'Column Value');
            data.addColumn('number', 'Column Value2');

            console.log(dataValues[0].ColumnName);



            for (var i = 0; i < dataValues.length; i++) {
                data.addRow([dataValues[i].ColumnName, dataValues[i].Value, dataValues[i].Value2]);
            }


           var formatter = new google.visualization.DateFormat({pattern: 'yyyy-MM-dd'});

                 var chart = new google.visualization.AnnotationChart(document.getElementById('visualization'));

        var options = {
          displayAnnotations: false,
        };

        chart.draw(data, options);



         }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="visualization" style="width: 1000px; height: 500px;">
    </div>
    </form>
</body>
</html>
这是后面的C代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Web.Services;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    [WebMethod]
    public static List<Data> GetData()
    {

        SqlConnection conn = new SqlConnection(****);
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        conn.Open();
        string cmdstr = "select LogDate, val1, val2from [vwTest]";

        SqlCommand cmd = new SqlCommand(cmdstr, conn);
        SqlDataAdapter adp = new SqlDataAdapter(cmd);
        adp.Fill(ds);
        dt = ds.Tables[0];
        List<Data> dataList = new List<Data>();
        string cat = "";
        int val = 0;
        int val2 = 0;
        foreach (DataRow dr in dt.Rows)
        {
            cat = dr[0].ToString();
            val = Convert.ToInt32(dr[1]);
            val2 = Convert.ToInt32(dr[2]);
            DateTime dte = DateTime.Parse(DateTime.Parse(cat).ToString("yyyy-MM-dd"));
            dataList.Add(new Data(dte, val, val2));//Dont know what to do here
        }
        return dataList;
    }

    public class Data
    {
        public DateTime ColumnName;
        public int Value = 0;
        public int Value2 = 0;
        public Data(DateTime columnName, int value, int value2)
        {
            ColumnName = columnName;
            Value = value;
            Value2 = value2;
        }
    }
}
我看到一些例子,人们使用新的日期2013、23、3、4、5,但我没有硬编码我的数据


请帮忙。这是我第一次尝试使用谷歌可视化API,当您通过JSON发送数据时,日期很难处理,因为JSON没有日期标准。将它们作为正确的日期对象输入的唯一方法是使用完整的JSON DataTable语法来指定数据的行、列和单元格。因为我不太确定这在C语言中是如何实现的,所以我可以为您演示另一种方法。由于您的DataTable需要日期对象,并且您的输出为您提供了日期字符串,因此将字符串解析为年、月和日是一项相对简单的任务,然后根据这些内容构建日期对象:

for (var i = 0; i < dataValues.length; i++) {
    // assumes the date string is in the format "yyyy-MM-dd"
    var dateArr = dataValues[i].ColumnName.split('-');
    var year = dateArr[0];
    var month = dateArr[1] - 1; // adjust for javascript's 0-indexed months
    var day = dateArr[2];
    data.addRow([new Date(year, month, day), dataValues[i].Value, dataValues[i].Value2]);
}

好的,谢谢你的帮助。我最终从sql server发送了日期,并按照您所说的那样建立了它。谢谢你的回复。你的方法也会奏效。