es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Delimitando SQL a una caja delimitadora sobre la línea de cambio de fecha internacional.

Estoy intentando acotar mi consulta para seleccionar ubicaciones que se encuentren dentro de una caja delimitadora de latitudes/longitudes. Por lo general, esto funciona bien siempre y cuando la caja delimitadora no cruce la línea internacional de cambio de fecha.

Sin embargo, si mi caja delimitadora cruzara la línea internacional de cambio de fecha, por ejemplo, unos límites longitudinales de 179.00 a -179.00, entonces la consulta no devolverá resultados. No puedo simplemente invertir el orden y cambiarlo a entre -179.00 y 179.00 porque en su lugar se devolverían cosas fuera de mi caja delimitadora.

¿Cuál es la mejor manera de determinar la consulta SQL apropiada (ya sea como SQL o pseudocódigo que ayudaría a derivar la mejor SQL)?

sql
SELECT *
FROM locations
WHERE latitude BETWEEN ? AND ?
AND longitude BETWEEN ? AND ?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La mejor manera de determinar el SQL apropiado para una caja delimitadora que cruza la línea internacional de cambio de fecha es utilizar el operador OR. Puede utilizar esto para comprobar si la longitud está dentro de los límites de la caja, o si es mayor que el límite inferior y menor que el límite superior cuando el límite inferior es negativo y el límite superior es positivo.

    SELECT *
    FROM locations
    WHERE latitude BETWEEN ? AND ?
    AND (longitude BETWEEN ? AND ? OR (longitude > ? AND longitude < ?))
    

Comments are closed.