© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•2y ago•
5 replies
san4d

Parameterized Interval in Where Clause

I'm trying to write a query that uses an interval as a parameter. The SQL looks like this and works fine:
where now() - interval '1 month' < table.date 
where now() - interval '1 month' < table.date 

When I try to write it using drizzle, it also works fine if a hard code the interval:
lt(
    sql<Date>`now() - interval '1 month'`,
    sql<Date>`table.date`
)
lt(
    sql<Date>`now() - interval '1 month'`,
    sql<Date>`table.date`
)

However, it does not work if I try to parameterize the interval like this:
lt(
    sql<Date>`now() - interval '${interval}'`,
    sql<Date>`table.date`
)
lt(
    sql<Date>`now() - interval '${interval}'`,
    sql<Date>`table.date`
)

or this:
sql<boolean>`now() - interval '${interval}' < table.date`,
sql<boolean>`now() - interval '${interval}' < table.date`,

I get this error
Error: could not determine data type of parameter $3

I tried this
lt(
    sql<Date>`now() - ${interval}`,
    sql<Date>`table.date`
)
lt(
    sql<Date>`now() - ${interval}`,
    sql<Date>`table.date`
)

and got this error
operator does not exist: interval < timestamp with time zone


Since the raw SQL works, I must be missing something in the ORM usage. Any suggestions?

I'm running Postgres 16 on neon using drizzle 0.30.7.
Drizzle TeamJoin
The official Discord for all Drizzle related projects, such as Drizzle ORM, Drizzle Kit, Drizzle Studio and more!
11,879Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Dynamic where clause
Drizzle TeamDTDrizzle Team / help
3y ago
Where clause on 'with' in findMany
Drizzle TeamDTDrizzle Team / help
17mo ago
Double 'where' clause in dynamic query overriding the original 'where' clause not combining
Drizzle TeamDTDrizzle Team / help
15mo ago
Missing nested where clause
Drizzle TeamDTDrizzle Team / help
2y ago