我有一个可以很好地处理以下查询的折线图:
SELECT peakdate, peakusage
FROM peaktable
WHERE peakDate BETWEEN '#arguments.dtBegin#' AND '#arguments.dtEnd#'
ORDER BY peakdate
日期输出类似于:2014-01-01 00:00:00.0,我可以轻松地将其转换为日期时间图表的毫秒。我使用 JavaScript getTime() 函数来转换日期,一切都很好。
现在,我需要显示每天的 MAX 峰值,而不是在图表上显示所有数据点。这是我编写的在 SQL Server 中运行良好的查询:
SELECT convert(varchar(10), peakdate, 120) as peakdate , MAX(peakusage)
FROM peaktable
WHERE peakDate BETWEEN '#arguments.dtBegin#' AND '#arguments.dtEnd#'
GROUP BY convert(varchar(10), peakdate, 120)
ORDER BY convert(varchar(10), peakdate, 120)
这个日期输出看起来像 2014-01-01,最后没有时间。我将它保存在 varchar(10) 以便在日期级别进行分组。不幸的是,JavaScript getTime() 函数会引发错误,因为日期没有附加时间元素。所以我认为我很聪明,我将 00:00:00.0 连接到 SQL 语句中日期的末尾,但它仍然抛出错误。我猜 JavaScript 并没有将其视为日期:
SELECT CONCAT(convert(varchar(10), peakdate, 120),' 00:00:00.0') as peak , MAX(peakusage)
FROM peaktable
WHERE peakDate BETWEEN '#arguments.dtBegin#' AND '#arguments.dtEnd#'
GROUP BY convert(varchar(10), peakdate, 120)
ORDER BY convert(varchar(10), peakdate, 120)
有没有人对如何在 Highcharts 日期时间图表中使用没有时间元素的日期对象有任何想法?我将要绘制的下一个查询是显示该月的峰值点。所以日期格式看起来像 yyyy-mm。