如何将 DateTime 从查询转换为字符串以便在 Google 可视化图表中使用它?
How to convert DateTime to String from query for using it in Google Visualization Chart?
我在查询中获取了这种格式的日期数据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>
]);
但我在控制台中收到错误消息:
Uncaught (in promise) Error: Type mismatch. Value 504.5 does not match
type string in column index 0
尝试将 #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>
我在查询中获取了这种格式的日期数据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>
]);
但我在控制台中收到错误消息:
Uncaught (in promise) Error: Type mismatch. Value 504.5 does not match type string in column index 0
尝试将 #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>