【问题标题】:How to display data for a specific month in a table?如何在表格中显示特定月份的数据?
【发布时间】:2019-11-20 02:05:09
【问题描述】:

我想知道如何在表格中显示特定月份的数据。

有一个包含 [EmployeeId,Date,StartTime,EndTime] 列的表。 我想按日期的月份过滤,但我不知道如何。

  var AttendanceResult = [];

  // Select employee number and current month data
   var query = app.models.AttendanceMaster.newQuery(); 
   query.filters.EmployeeId._equals = userNumber; // Match employee number
   query.filters.Date._contains = roadMonth;       // Including month

   var records = query.run();  

   for (var i = 0; i < records.length; i++) {
      AttendanceResult.push(records[i]);
   }   

return AttendanceResult;

由于“query.filters.Date._contains = roadMonth;”上面代码中的过滤器不起作用, 我认为这里有一个错误, 请告诉我。

有哪些过滤器示例?

【问题讨论】:

  • 我实际上并不确定应用制作工具查询选项是否用于处理日期字段中一个月的查询。您可能想探索计算 SQL 模型,因为常规 SQL 查询能够按特定日期部分(例如月份)进行过滤。
  • 感谢 Markus Malessa 的建议。我将调查 SQL 查询。谢谢。

标签: google-app-maker


【解决方案1】:

您当然可以使用 appmaker 的脚本来实现这一点。从您的示例构建,我看到您正在使用服务器脚本。以下 sn-p 应该可以帮助您了解如何实现它,并且还应该产生您想要的结果:

function filterByMonth(month){

  //get the selected month digit
  month = month.toLowerCase();
  var allMonths = {
    "january": 0,
    "february": 1,
    "march": 2,
    "april": 3,
    "may": 4,
    "june": 5,
    "july": 6,
    "august": 7,
    "september": 8,
    "october": 9,
    "november": 10,
    "december": 11
  };
  var monthDigit = allMonths[month];

  // Select employee number and current month data
  var selectedMonthStart = new Date();
  selectedMonthStart.setMonth(monthDigit);
  selectedMonthStart.setDate(1);
  selectedMonthStart.setHours(0,0,-1,0);
  var selectedMonthEnd = new Date();
  selectedMonthEnd.setMonth(monthDigit+ 1);
  selectedMonthEnd.setDate(1);
  selectedMonthEnd.setHours(0,0,0,0);
  var query = app.models.AttendanceMaster.newQuery(); 
  query.filters.EmployeeId._equals = userNumber; // Match employee number
  query.filters.Date._greaterThan = selectedMonthStart; // Including month start time
  query.filters.Date._lessThan = selectedMonthEnd; // Including month end time
  var AttendanceResult = query.run();

  return AttendanceResult; 
}

【讨论】:

  • 谢谢。我非常感激。根据示例代码,我能够安全地过滤。谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
相关资源
最近更新 更多