Mysql запрос от и до - PullRequest
       2

Mysql запрос от и до

0 голосов
/ 26 декабря 2011

Скажем, я должен выбрать значение с сегодняшнего дня до следующего воскресенья.Как ввести дату?

Есть ли какое-либо ключевое слово, например FROM = 26-12-2001 TO = 30-12-2001

Ответы [ 2 ]

3 голосов
/ 26 декабря 2011

Обычно вы используете МЕЖДУ для этого

WHERE YourDate BETWEEN '26-12-2001' AND '30-12-2001'

хотя можно использовать и другие распространенные операторы сравнения

WHERE YourDate >= '26-12-2001' AND Yourdate < '31-12-2001'

Обратите внимание на использование 31 / 12/2001 при использовании оператора сравнения меньшего, чем

1 голос
/ 26 декабря 2011

Используйте between.В вашем случае это будет between date1 and date2

SELECT * FROM your_table_name
 WHERE your_tables_date_column 
 BETWEEN date1 and date2

Учет времени, если записано с:

SELECT * FROM your_table_name
 WHERE DATE_FORMAT(your_tables_date_column, '%Y-%m-%d 00:00:00') 
  /* Oracle trunc(col) equivalent */
 between date1 and date2

Это работает и для строк, например

SELECT * FROM Persons
 WHERE lower(last_name)
 BETWEEN 'smith' AND 'webster'

для чисел, например

SELECT * FROM Persons
 WHERE height
 BETWEEN 1 and 3 /* meters, i.e. exclude kids */

, и вы также можете использовать отрицательный, например,

SELECT * FROM Persons
 WHERE lower(last_name)
 NOT BETWEEN 'smith' AND 'webster'

Кстати, буквальный ответ на ваши вопросы выглядит примерно так:

SELECT * from tbl where date_field BETWEEN
CURDATE() AND 
DATE_ADD(CURDATE(), INTERVAL (8 - IF(DAYOFWEEK(CURDATE())=1, 8, DAYOFWEEK(CURDATE()))) DAY) AS NEXTSUNDAY  

/* Watch for performance issues with indexes when using functions on columns */
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...