entencia @IF dentro de la cláusula where en SQL

Estoy desarrollando una aplicación de calendario. Almacena los tiempos en dos formatos. La tabla tiene las siguientes columnastitle, startDate, startTime. Si el usuario proporciona la hora de inicio más la fecha de inicio. La base de datos almacena la marca de tiempo UNIX (número de segundos desde UNIX epok) en la columnastartTime, mientras que startDate esNULL. Si el usuario solo proporciona una fecha de inicio, la base de datos almacena la fecha en formatonnnn-mm-dd instartDate yNULL en ´startTime`. Tengo esta estructura de base de datos, porque es más fácil mostrar las horas en todo el mundo, porque las diferentes zonas horarias tienen diferentes horarios de verano.

Quiero seleccionar los eventos que ocurren después de una fecha específica. La computadora cliente proporciona al servidor una marca de tiempo UNIX del comienzo de ese día $unix) y una fecha $date) en el formatonnnn-mm-dd para seleccionar las fechas correctas.

El problema es que no sé cómo seleccionar los días que están ocurriendo como se especificó anteriormente. Esta solución no es aplicable para mí, aunque funciona:

SELECT *
  FROM events
 WHERE startDate >= '$date'
   OR startTime >= '$unix'

Lo que pasa es que tengo en algunas filas donde se proporciona la marca de tiempo de Unix enstartTime, También tengo una fecha proporcionada enstartDate y otra razón que no quiero explicar. Y por eso no puedo usar la solución anterior.

Necesito algún tipo de solución que tenga una declaración IF dentro de la cláusula Where como:

SELECT *
  FROM events
 WHERE IF(startTime = NULL, startDate >= '$date', startTime >= '$unix')

Solo estoy adivinando esta solución. ¿Pero es correcto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta