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

Google App Maker从MySQL获取DateTime字段值返回null求助

解决Google App Maker服务器脚本获取MySQL DateTime字段返回null的问题

早上好!针对你遇到的results.getDate('dt_Alta')返回null但无报错的问题,我整理了几个常见的排查和解决方向,你可以逐一尝试:

1. 确认字段名与查询语句的正确性

  • 首先检查你的SQL查询语句,确保明确包含了dt_Alta字段,如果SELECT时漏选了这个字段,结果集里自然没有对应数据,调用getDate会返回null。
  • 注意MySQL的字段名大小写敏感性:在Linux环境下的MySQL默认区分大小写,确认你代码里的dt_Alta和数据库表中的字段名完全一致(包括大小写)。

2. 尝试改用getString手动转换为Date对象

有时候JDBC驱动对MySQL DateTime类型的getDate支持可能存在兼容性问题,建议先获取字符串格式的日期,再转换为Date对象:

// 先获取字符串格式的DateTime值
var dateStr = results.getString('dt_Alta');
// 转换为Date对象并赋值
if (dateStr) {
  calcRecord.fct_f_FechaRecepcion = new Date(dateStr);
}

3. 使用getTimestamp方法获取时间戳后转换

如果DateTime字段包含时间部分,getTimestamp方法可能更可靠,它能完整获取日期和时间信息,再转换为App Maker支持的Date对象:

var timestamp = results.getTimestamp('dt_Alta');
if (timestamp) {
  calcRecord.fct_f_FechaRecepcion = new Date(timestamp.getTime());
}

4. 验证MySQL DateTime的格式兼容性

确认数据库中dt_Alta字段的格式是标准的YYYY-MM-DD HH:MM:SS,如果是自定义格式(比如DD/MM/YYYY HH:MM),直接用new Date()转换可能失败,需要手动解析字符串:

var dateStr = results.getString('dt_Alta');
if (dateStr) {
  // 示例:处理DD/MM/YYYY HH:MM格式
  var parts = dateStr.split(/[\/ :]/);
  calcRecord.fct_f_FechaRecepcion = new Date(parts[2], parts[1]-1, parts[0], parts[3], parts[4]);
}

5. 确认App Maker字段类型匹配

检查calcRecord.fct_f_FechaRecepcion对应的模型字段类型是否为Date,如果是字符串类型,直接赋值Date对象可能导致异常或null,需要调整字段类型或转换为字符串存储。

你可以先通过console.log(results.getString('dt_Alta'))打印一下原始值,看看是否能获取到内容,这能帮你快速定位是查询问题还是转换问题。

内容的提问来源于stack exchange,提问作者José Gabiel Rodríguez Corpas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:37:28