我在查询中以这种格式2018-04-01 00:00:00.0
获取日期数据,并使用以下代码将其作为字符串添加到列中:
var data = new google.visualization.DataTable();
data.addColumn('string', 'StartDate');
data.addColumn('number', 'Deficiency');
data.addColumn('number', 'Withdraw');
data.addColumn('number', 'Rain');
data.addRows([
<cfoutput query="display_data">
[
#dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#,
#NumberFormat(DEF, '.9')#,
#NumberFormat(WD,'.9')#,
#NumberFormat(RAIN,'.9')#,
],
</cfoutput>
]);
但是控制台出现错误:
未捕获(承诺)错误:类型不匹配。值504.5不匹配 在列索引0中键入字符串
答案 0 :(得分:4)
尝试将#dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#
放在引号中。像"#dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#"
。
var data = new google.visualization.DataTable();
data.addColumn('string', 'StartDate');
data.addColumn('number', 'Deficiency');
data.addColumn('number', 'Withdraw');
data.addColumn('number', 'Rain');
data.addRows([
<cfoutput query="display_data">
[
'#dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#',
#NumberFormat(DEF, '.9')#,
#NumberFormat(WD,'.9')#,
#NumberFormat(RAIN,'.9')#,
],
</cfoutput>
]);
我将执行以下操作。
<cfset dataArray = []>
<cfloop query="display_data">
<cfset ArrayAppend(dataArray, [dateTimeFormat(display_data.STARTPERIOD, "yyyy/dd/mm"), NumberFormat(display_data.DEF, '.9'), NumberFormat(display_data.WD,'.9'), NumberFormat(display_data.RAIN,'.9')])>
</cfloop>
<script>
var data = new google.visualization.DataTable();
data.addColumn('string', 'StartDate');
data.addColumn('number', 'Deficiency');
data.addColumn('number', 'Withdraw');
data.addColumn('number', 'Rain');
data.addRows(<cfoutput>#serializeJSON(dataArray)#</cfoutput>);
</script>
对于ColdFusion 2016及更高版本,您可以使用以下内容。
<cfscript>
dataArray = [];
display_data.each(function(value, index){
dataArray.append([dateTimeFormat(value.STARTPERIOD, "yyyy/dd/mm"), NumberFormat(value.DEF, '.9'), NumberFormat(value.WD,'.9'), NumberFormat(value.RAIN,'.9')]);
});
</cfscript>