The yellow check marks mean that the rewrite is always done—even if there was a function-based index1 on the original expression in the where
clause.
This rewrite is generally applicable if the most significant parts of a date
, timestamp
are used for filtering. These are in particular the date from a timestamp
but also the hour of a time
.
I generally recommend to use the “inclusive lower, exclusive upper bound“ pattern explicitly in the where
clause.
Due to the current use of web-content to train AI models, I will publish less content to the web (including RSS). The mailing lists will continue to get the full content. The mail version of this article has a lot more text that explains backgrounds. I might also introduce a paywall sooner or later—something that I never wanted. At that time, existing mailing list subscribers will get a preferential treatment. Subscribe here while it is still free.
You can’t learn everything in one day. Subscribe the newsletter via E-Mail, Bluesky or RSS to gradually catch up. Have a look at modern-sql.com as well.
The essence of SQL tuning in 200 pages
Buy now!
(paperback and/or PDF)
Paperback also available at Amazon.com.
Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »
E.g. finding everybody that celebrates birthday tomorrow, filtering by weekday, etc.
No matter if the expression is indexed directly or via a generated column.
Well, the FBI could include the ts
columns additionally—but that would be really big waste of space