@Override
	public void gatherSQLEffect(SQLEffects effect, FilterAtom atom, IDSQLResolution resolution)
		throws SQLException {
		LocalDate localDate = formatDate(atom.value);
		if (localDate == null) {
			return;
		}
		//localDate is a calendar date, i.e., does not specify hours/minutes/seconds
		//the database records timestamps for executables, so we need to create a timestamp 
		//from localDate.  The timestamp we create corresponds to midnight on localDate
		//*in the system default time zone of the client*.  If an executable's ingest timestamp is
		//before this timestamp, it passes the filter.
		Date date =
			Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
		effect.setExeTable();
		String dateString =
			new SimpleDateFormat(AbstractSQLFunctionDatabase.JAVA_TIME_FORMAT).format(date);
		StringBuilder buf = new StringBuilder();
		buf.append("exetable.ingest_date < to_timestamp('")
			.append(dateString)
			.append("','" + AbstractSQLFunctionDatabase.SQL_TIME_FORMAT + "')");
		effect.addWhere(this, buf.toString());
	}
A BsimFilterType for filtering on functions in programs created before the filter date.
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/gui/filters/DateEarlierBSimFilterType.java