2013-01-07 39 views
1

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

​​

任何指导赞赏谢谢!

+0

只是一个想法。如果您可以将日期字符串存储为yyyy-mm-dd,那么排序会简单得多。有一个伟大的。 – ScampMichael

回答

2

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

  1. 检索未排序的数据,将其复制到一个数组,并请使用Array.sort()自己,或者
  2. 改变你存储到ScriptDb什么。

选项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('/'); 
+0

非常感谢Corey ..我对脚本编写不熟悉,仍然掌握编码的最佳实践。我将以这种方式重做数据库。纠正我,如果我错了,但我应该只是能够循环scriptDb中的每个记录,并更新“maintAccomplishedOn”属性正确? – LennyZ71

+0

是的,应该工作。 –