How to select records from last 24 hours using SQL?
For a 24-hour range in MySQL, combine NOW()
and INTERVAL
:
With SQL Server, apply GETDATE()
and DATEADD
:
Ensure to replace your_table
and your_datetime_column
with your database details.
Exploring different databases
Each type of SQL dialect uses specific commands for date and time. Let's look at how few handle the 24-hour range task:
PostgreSQL and Redshift share syntax similarities with MySQL:
Oracle and SQLite employ their unique styles:
For MS Access, use Now
minus one:
Tuning your time-related queries
Here are some golden rules for optimizing time-related queries:
- Swap
SELECT *
withSELECT specific_columns
for boosted performance. - Index
your_datetime_column
to speed up queries. - Check your
timezone settings
to avoid bad timing. - Adopt
GETUTCDATE()
in SQL Server for uniform UTC time.
Handling varying time spans
Modify the INTERVAL
command or its equivalent to cater to different time frames:
Digging deeper: Advanced tips
Leap seconds and daylight saving time
Is daylight saving time causing a wrinkle in time? Functions accounting for DST changes or leap seconds can smooth it out.
Precise timestamps
For near real-time precision, SQL Server 2008 or later have SYSDATETIME()
, because who has time for stale data?
Case sensitivity
Got the column name case slightly off? Some databases have gotcha covered. Remember, case does matter.
Indexing strategy
Indexing = Speed 💨! So let's get those critical columns indexed for a faster ride.
Was this article helpful?