How to Query Time Fields in Blackbaud Altru
← Back to Blog

How to Query Time Fields in Altru: Workarounds That Hold Up

October 31, 2026

“How many tickets did we sell for the 10:00 entry slot last Saturday?” or “How much of our daily sales revenue came in after 4 p.m.?” sound like simple questions. Then you open an ad-hoc query in Altru, look for a time filter, and find that the field either isn’t there, doesn’t offer the comparisons you expect, or returns results that don’t match what you saw at the register.

Time is one of the clumsier things to query in Altru. The good news is that most time-of-day questions can still be answered with a bit of planning. This article covers why it’s awkward, the workarounds that hold up, and how to check your results before anyone makes decisions from them.

Not every “time” in Altru is the same kind of field

Before building filters, figure out which kind of time value you’re dealing with. In practice you’ll run into three:

  • Date-only fields. Many dates in query (membership expiration, constituent dates, many revenue dates) carry no time at all. If the field has no time component, no filter will split it by hour. Recognizing this early saves a lot of frustration.
  • Date-and-time fields. Some transaction-style records store a full timestamp. These usually filter by date well, but the time portion may not be exposed as its own filter, and “equal to” a date can behave differently than “on or after” a date at midnight.
  • Time-of-day fields. Program and event start and end times describe a slot, not a moment. Depending on how the field is stored, query may treat it more like text than like a clock value, which limits the operators you can use.

We can’t promise which specific fields in your query views fall into which group, and it can vary by view. The fastest way to find out is to add the field to a query’s output, run it, and look at what comes back. A value like “10:00 AM”, a four-digit value like “1000”, and a full date with a time attached each need different handling.

Approaches that work

1. Filter by the event, not the clock

For timed-entry questions (“who came at 10:00?”), the cleanest route is usually to filter on the program and the event date, then include the event start time as an output column. Each timed slot is its own event, so you’re really asking about a specific event rather than a time range. Sort the output by start time and you have your answer by slot without needing a time filter at all.

2. Use text comparisons carefully when the time is stored as text

If a time-of-day field turns out to behave as text, comparisons like “greater than” may still work if the values are consistently formatted in 24-hour, zero-padded form (for example, “0930” sorts before “1400”). They will not work reliably with 12-hour values that include AM and PM, where “1:00 PM” sorts before “9:00 AM” alphabetically. Test with a handful of known events before trusting a range filter.

3. Narrow by date in Altru, then slice by hour outside it

For transaction timestamps (sales after 4 p.m., the busiest hour at admissions), it’s often more dependable to filter by date range in the query, include the full date-time value as an output column, and export. In Excel or Google Sheets, a formula such as =HOUR(A2) pulls out the hour, and a pivot table gives you counts or revenue by hour in a few minutes. It’s one extra step, but you’re working with the actual values instead of fighting filter options.

4. Save the query for reuse

Once you have a version that works, save it with a clear name and description that explains the time handling (“Sorted by event start time; filter on event date only”). The next person to open it won’t have to rediscover the quirk.

Check the results before you share them

Time values are where small reporting errors hide. A few checks worth doing:

  1. Compare against a transaction you know. Pick a sale you remember, such as one you rang up yourself, and confirm the time in the query output matches the time it happened. If it’s off by a consistent number of hours, you may be looking at a time zone or server-time difference, and you’ll need to adjust for it in your spreadsheet.
  2. Check the day boundaries. If a timestamp is stored in a different time zone, late-evening transactions can land on the next day. Look at sales near midnight, especially for online purchases.
  3. Reconcile totals. The sum of your hourly buckets should match the daily total from a standard Altru report for the same day. If it doesn’t, something is being dropped or double-counted.

If you can’t tell whether a given field holds a time component or how it’s stored, ask Blackbaud support or try the query in a sandbox environment if you have one. That’s better than guessing and building a staffing plan on a misread field.

When this becomes a weekly task

Hourly analysis tends to turn into a routine: staffing schedules, timed-entry capacity planning, or comparing weekday and weekend patterns. Exporting, adding formulas, and rebuilding the pivot every week gets old. Data Bridge syncs Altru query results to Google Sheets, so the hour formulas and pivot tables can live in a sheet that refreshes from the saved query rather than from a fresh manual export each time.

Quick answers

Why can’t I filter a query by time of day?
Often the field is date-only, or the time portion isn’t offered as its own filter. Include the full value as an output column and work out the hour after export.

Why don’t my “after 2:00 PM” results look right?
The field may be compared as text. Check how the values are formatted, and switch to filtering by event or by date with time handled in a spreadsheet if the format isn’t consistent.

Continue reading

How to Track Instructor Activity for Scheduled Programs in Altru

How to Track Instructor Activity for Scheduled Programs in Altru

“How many classes did Maria teach last spring, and which ones?” It sounds like a question Altru should answer in ten seconds. In practice, many education departments end up digging through calendars, email threads, and a payroll spreadsheet to piece it together, because the instructor was never recorded anywhere a query could find. Altru is

How to Turn a Group Sales Overpayment Into a Donation in Altru

How to Turn a Group Sales Overpayment Into a Donation in Altru

A school books a field trip for 60 students, sends a check for the full quote, and then 48 kids show up. The teacher says, “Keep the difference, it’s a gift.” Now you have a group sales order that is overpaid, money that is really a donation, and a deposit that has to balance. The

Can a Spouse Be a Fundraiser in Altru? Solicitor Credit for Couples

Can a Spouse Be a Fundraiser in Altru? Solicitor Credit for Couples

It happens more often than you’d expect. A board member and her husband both care about your capital campaign. She asks a friend for a gift, but it was really his introduction and his follow-up phone call that closed it. Development wants him credited as the fundraiser on that gift. Then someone at the desk

Social Good platform

See it in action

Get started with Social Good

Book a demo to see Social Good Software in action for Altru.

Book a Demo
Social Good platform

See Social Good in action

Tell us a bit about your organization and we’ll take you straight to short demo walkthroughs of the software.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.