0

我正在尝试检索一个月的发票(一个月开始,下个月开始结束)。但是,我在结果集中得到了结束月份第一天的结果,这是我没有预料到的。

例如,这将返回 12 月 1 日的发票:

account = SoftLayer::Service.new("...")

billing_invoice_service = softlayer_client.service_named("Billing_Invoice");

  object_filter = SoftLayer::ObjectFilter.new
  object_filter.set_criteria_for_key_path('invoices.createDate',
        'operation' => 'betweenDate',
        'options' => [{
                        'name' => 'startDate',
                        'value' => ["11/01/2015 00:00:00"]
                      },
                      {
                        'name' => 'endDate',
                        'value' => ["12/01/2015 00:00:00"]
                      }
                      ]
                      )

invoices = account.result_limit(0,5000).object_filter(object_filter).object_mask("mask[id,closedDate,createDate]").getInvoices

如果我使用以下过滤器运行,我在 12 月 1 日没有得到任何结果:

account = SoftLayer::Service.new("...")

billing_invoice_service = softlayer_client.service_named("Billing_Invoice");

  object_filter = SoftLayer::ObjectFilter.new
  object_filter.set_criteria_for_key_path('invoices.createDate',
        'operation' => 'betweenDate',
        'options' => [{
                        'name' => 'startDate',
                        'value' => ["12/01/2015 00:00:00"]
                      },
                      {
                        'name' => 'endDate',
                        'value' => ["12/01/2015 00:00:00"]
                      }
                      ]
                      )

invoices = account.result_limit(0,5000).object_filter(object_filter).object_mask("mask[id,closedDate,createDate]").getInvoices

因此,当我指定结束时间为 00:00:00 时,我不确定为什么在我的第一个过滤器中得到 12 月 1 日的结果。谢谢你。

编辑:这是上面第一个过滤器的结果的尾部(减去 id):

...
 {"closedDate"=>"2015-11-30T21:52:17+05:30",
  "createDate"=>"2015-11-30T21:52:16+05:30"},
 {"closedDate"=>"2015-11-30T23:22:14+05:30",
  "createDate"=>"2015-11-30T23:22:13+05:30"},
 {"closedDate"=>"2015-12-01T01:43:59+05:30",
  "createDate"=>"2015-12-01T01:43:56+05:30"},
 {"closedDate"=>"2015-12-01T01:45:36+05:30",
  "createDate"=>"2015-12-01T01:45:34+05:30"},
 {"closedDate"=>"2015-12-01T02:05:20+05:30",
  "createDate"=>"2015-12-01T02:05:16+05:30"},
 {"closedDate"=>"2015-12-01T02:12:22+05:30",
  "createDate"=>"2015-12-01T02:12:22+05:30"},
 {"closedDate"=>"2015-12-01T02:13:06+05:30",
  "createDate"=>"2015-12-01T02:13:04+05:30"},
 {"closedDate"=>"2015-12-01T02:13:07+05:30",
  "createDate"=>"2015-12-01T02:13:04+05:30"},
 {"closedDate"=>"2015-12-01T02:13:07+05:30",
  "createDate"=>"2015-12-01T02:13:05+05:30"},
 {"closedDate"=>"2015-12-01T02:13:08+05:30",
  "createDate"=>"2015-12-01T02:13:06+05:30"},
 {"closedDate"=>"2015-12-01T02:13:07+05:30",
  "createDate"=>"2015-12-01T02:13:06+05:30"},
 {"closedDate"=>"2015-12-01T02:21:34+05:30",
  "createDate"=>"2015-12-01T02:21:32+05:30"},
 {"closedDate"=>"2015-12-01T02:38:12+05:30",
  "createDate"=>"2015-12-01T02:38:10+05:30"},
 {"closedDate"=>"2015-12-01T03:36:07+05:30",
  "createDate"=>"2015-12-01T03:36:06+05:30"},
 {"closedDate"=>"2015-12-01T04:09:57+05:30",
  "createDate"=>"2015-12-01T04:09:55+05:30"},
 {"closedDate"=>"2015-12-01T04:37:45+05:30",
  "createDate"=>"2015-12-01T04:37:43+05:30"},
 {"closedDate"=>"2015-12-01T06:35:34+05:30",
  "createDate"=>"2015-12-01T06:35:33+05:30"},
 {"closedDate"=>"2015-12-01T07:00:09+05:30",
  "createDate"=>"2015-12-01T07:00:06+05:30"},
 {"closedDate"=>"2015-12-01T08:00:32+05:30",
  "createDate"=>"2015-12-01T08:00:30+05:30"}]
4

1 回答 1

0

该错误可能是由于时区,过滤器不考虑您当前的时区,它只过滤存储在数据库中的数据,当数据显示时,它会转换为您当前的时区。考虑到 softlayer 中存储的数据与当前时区之间的时区差异,我建议您更改结束日期值

于 2015-12-10T19:33:22.920 回答