Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
interval [2018/03/20 14:28] seer [Описание] |
interval [2019/01/24 09:46] (текущий) 95.165.164.201 |
||
---|---|---|---|
Строка 10: | Строка 10: | ||
===== Формат ===== | ===== Формат ===== | ||
- | select * from 'tbl' t where t.id between 1 and 100 | + | <code sql> |
+ | <between_predicate> ::= | ||
+ | <psql_expr> BETWEEN <psql_expr> AND <psql_expr> | ||
+ | | <psql_expr> NOT BETWEEN <psql_expr> AND <psql_expr> | ||
+ | </code> | ||
===== Описание ===== | ===== Описание ===== | ||
- | Выбор диапазона, аналог | + | Используйте BETWEEN, чтобы проверить, находится ли значение в определенном диапазоне, включая пределы диапазона.. |
- | select * from 'tbl' t where t.id >= 1 and t.id <= 100 | + | |
===== Пример ===== | ===== Пример ===== | ||
- | Эти примеры работают только для MySQL | + | В диапазоне |
- | Примеры действительны при условии, что поле `dt` типа DATETIME или TIMESTAMP: | + | |
- | + | ||
- | Сегодняшний день, но только последние 6 часов от текущего времени: | + | |
<code sql> | <code sql> | ||
- | SELECT * FROM `tbl` WHERE `dt`>=CURRENT_DATE AND `dt`>=NOW()-INTERVAL 6 HOUR ORDER BY `dt` | + | SELECT * FROM `tbl` t WHERE t.id BETWEEN 1 and 100 |
</code> | </code> | ||
- | Сегодняшний день + 6 часов до начала текущих суток: | + | аналог |
<code sql> | <code sql> | ||
- | SELECT * FROM `tbl` WHERE `dt`>=CURRENT_DATE-INTERVAL 6 HOUR ORDER BY `dt` | + | select * from 'tbl' t where t.id >= 1 and t.id ⇐ 100 |
</code> | </code> | ||
- | Последние 6 часов от текущего времени: | + | Вне диапазона |
<code sql> | <code sql> | ||
- | SELECT * FROM `tbl` WHERE `dt`>=NOW()-INTERVAL 6 HOUR ORDER BY `dt` | + | SELECT * FROM `tbl` t WHERE t.id NOT BETWEEN 1 and 100 |
</code> | </code> | ||
- | Последние 6 часов и до текущего времени: | + | аналог |
<code sql> | <code sql> | ||
- | WHERE `date` BETWEEN NOW()-INTERVAL 6 HOUR AND NOW() | + | select * from 'tbl' t where NOT (t.id >= 1 and t.id ⇐ 100) |
</code> | </code> | ||
- | |||
- | Последние 6 часов и до конца текущих суток: | ||
- | <code sql> | ||
- | WHERE `date` BETWEEN NOW()-INTERVAL 6 HOUR AND CURRENT_DATE+INTERVAL 1 DAY | ||
- | </code> | ||
- | |||
===== См. также ===== | ===== См. также ===== | ||
[[dateadd]] | [[dateadd]] | ||
===== Источник ===== | ===== Источник ===== | ||
- | http://sqlinfo.ru/forum/viewtopic.php?id=1203 | + | http://www.janus-software.com/fbmanual/manual.php?book=psql&topic=80 |