ScriptDb查询日期并按降序排序

时间:2013-01-07 16:59:05

标签: google-apps-script

我从脚本Db运行以下查询。我将它正在寻找的日期存储为'M / d / yyyy',作为字符串。 lookUp很好,并返回我需要的所有内容,但排序顺序不是按月或年。

var result = db.query({"p1arSn":e.parameter.search}).sortBy("maintAccomplishedDate", db.DESCENDING);

任何指导表示赞赏谢谢!

1 个答案:

答案 0 :(得分:2)

您无法使用sortBy对存储为字符串的日期进行排序。你的选择是

  1. 检索未排序的数据,将其复制到数组中,然后自己使用array.sort()或
  2. 更改您在ScriptDb中存储的内容。
  3. 选项1更简单,但如果您要检索分页数据或有限数据,那么在检索之后进行排序并不是您想要的。

    选项2有点困难 - 在ScriptDb中存储日期时,存储时间戳(日期有getTime()给你的时间)。这些是可以排序的数字。

    您可以从以下某个日期字符串中获取时间戳:

    var timestamp = new Date('3/5/1983').getTime()  // 415688400000
    

    您可以像这样获取原始字符串:

    var d = new Date(415688400000);
    var string = [d.getMonth() + 1, d.getDate(), d.getYear()].join('/');