---
title: "Rails 5.1 has introduced Date#all_day helper"
description:
  "Rails 5.1 has introduced a helper method for creating a range object covering
  the whole day for given date"
canonical_url: "https://www.bigbinary.com/blog/rails-5-1-has-introduced-date-all_day-helper"
markdown_url: "https://www.bigbinary.com/blog/rails-5-1-has-introduced-date-all_day-helper.md"
---

# Rails 5.1 has introduced Date#all_day helper

Rails 5.1 has introduced a helper method for creating a range object covering
the whole day for given date

- Author: Prathamesh Sonpatki
- Published: April 24, 2017
- Categories: Rails 5.1, Rails

Sometimes, we want to query records over the whole day for a given date.

```ruby
>> User.where(created_at: Date.today.beginning_of_day..Date.today.end_of_day)

=> SELECT "users".* FROM "users" WHERE ("users"."created_at" BETWEEN $1 AND $2) [["created_at", 2017-04-09 00:00:00 UTC], ["created_at", 2017-04-09 23:59:59 UTC]]
```

Rails 5.1 has
[introduced a helper method](https://github.com/rails/rails/pull/24930) for
creating this range object for a given date in the form of `Date#all_day`.

```ruby
>> User.where(created_at: Date.today.all_day)

=> SELECT "users".* FROM "users" WHERE ("users"."created_at" BETWEEN $1 AND $2) [["created_at", 2017-04-09 00:00:00 UTC], ["created_at", 2017-04-09 23:59:59 UTC]]
```

We can confirm that the `Date#all_day` method returns the range object for a
given date.

```ruby
>> Date.today.all_day

=> Sun, 09 Apr 2017 00:00:00 UTC +00:00..Sun, 09 Apr 2017 23:59:59 UTC +00:00
```

## Links

- [Human page](https://www.bigbinary.com/blog/rails-5-1-has-introduced-date-all_day-helper)
