The example would probably teach a different story. If we have a layered architecture, the configuration should be nearer the top of it, preferably, just outside the "bubble" of the business domain. That 90 days is a parameter.
Also GetViews90Days sounds strange. Are there GetViews30Days or maybe GetViews2Years? Why this kind of function has been created at all?
Will the function GetViewsPeriod (with a period as a parameter) be a much better approach?
Also accessing time.Now() looks to me as a violation of SRP. Can be a parameter as well. For example, if there are also functions like GetEditsPeriod , GetDeletesPeriod in the same call it can be nice that those are synchronized in time. ( + the function can be more testable without the need to mock time.Now())
And then what is left can possibly be just one component in a large pattern (eg, Specification), which combines things together. Again, this depends on how many other cases area there to make that fight against system complexity...