Trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử SQL BETWEEN để kiểm tra xem một giá trị có nằm trong một phạm vi cụ thể hay không.

Bạn đang xem : truy vấn sql giữa phạm vi thời gian

Tóm tắt : trong hướng dẫn này, bạn sẽ học cách sử dụng toán tử SQL BETWEEN để kiểm tra xem một giá trị có nằm trong một phạm vi cụ thể hay không.

Giới thiệu về toán tử SQL BETWEEN

Toán tử BETWEEN là một trong những toán tử lôgic trong SQL . Toán tử BETWEEN kiểm tra xem một giá trị có nằm trong một dải giá trị hay không.

Cú pháp của toán tử BETWEEN như sau:

< pre class = "wp-block-code">

biểu thức GIỮA thấp VÀ cao;

Mã ngôn ngữ:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Toán tử BETWEEN trả về true nếu biểu thức lớn hơn hoặc bằng ( & gt; = ) giá trị thấp và nhỏ hơn hoặc bằng ( & lt; = ) giá trị cao.

Về mặt kỹ thuật, BETWEEN tương đương với biểu thức sau sử dụng giá trị lớn hơn hoặc bằng ( & gt; = ) và nhỏ hơn hoặc bằng ( & lt; = ) toán tử:

 

expression & gt; = low AND biểu thức & lt; = high

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< p> Để so sánh một giá trị với một phạm vi riêng, bạn cần sử dụng toán tử so sánh nhỏ hơn ( & lt; ) và lớn hơn ( & gt; ).

KHÔNG GIỮA

Để phủ định kết quả của toán tử BETWEEN , bạn sử dụng NOT < / code> operator:

 

biểu thức KHÔNG GIỮA thấp VÀ cao

< p class = "shcb-language__label"> Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

KHÔNG GIỮA trả về true nếu biểu thức nhỏ hơn < mã> thấp hoặc lớn hơn (& gt;) cao ; nếu không, nó trả về false.

Giống như toán tử BETWEEN , bạn có thể viết lại toán tử NOT BETWEEN bằng cách sử dụng toán tử nhỏ hơn (& lt;) và lớn hơn (& gt;) toán tử với toán tử OR như sau:

 

biểu thức & lt; biểu thức OR thấp & gt; high

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Trong thực tế , bạn thường sử dụng toán tử GIỮA KHÔNG GIỮA trong mệnh đề WHERE của CHỌN để chọn các hàng có giá trị của cột nằm trong một phạm vi cụ thể.

Ví dụ về toán tử SQL BETWEEN

Chúng tôi sẽ sử dụng các nhân viên Bảng từ cơ sở dữ liệu mẫu để minh họa cách hoạt động của toán tử BETWEEN .

staff_table

1) Sử dụng trình vận hành SQL BETWEEN với ví dụ về số

Câu lệnh sau sử dụng toán tử BETWEEN để tìm tất cả nhân viên có tôi nằm trong khoảng từ 2.500 đến 2.900:

 

CHỌN Mã hiệu công nhân, họ, họ, lương

TỪ

người lao động

Ở ĐÂU

lương

GIỮA

2500

2900

ĐẶT HÀNG

THEO

lương

DESC

;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Hãy thử

 

+ ------------- + ------------ + ------------- + ------ --- + | nhân_viên | first_name | last_name | lương | + ------------- + ------------ + ------------- + -------- - + | 116 | Shelli | Baida | 2900,00 | | 117 | Dấu hiệu | Tobias | 2800,00 | | 126 | Irene | Mikkilineni | 2700,00 | | 118 | Chàng trai | Himuro | 2600,00 | | 119 | Karen | Colmenares | 2500,00 | + ------------- + ------------ + ------------- + -------- - +

Lưu ý rằng tập kết quả bao gồm những nhân viên có mức lương là 2.500 và 2.900.

Truy vấn sau trả về tập kết quả giống như truy vấn trên. Tuy nhiên, nó sử dụng các toán tử so sánh lớn hơn hoặc bằng (& gt; =) và nhỏ hơn hoặc bằng (& lt; =) thay vì:

 

CHỌN

Mã hiệu công nhân, họ, họ, lương

TỪ

người lao động

Ở ĐÂU

lương & gt; =

2500

lương & lt; =

2900 < / p>

ĐẶT HÀNG

THEO

lương;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< span class = "sql" rel = "noopener noreferrer" target = "_ blank"> Hãy thử

2) Sử dụng ví dụ SQL KHÔNG GIỮA

Ví dụ sau sử dụng Toán tử KHÔNG GIỮA để tìm tất cả nhân viên có mức lương không nằm trong khoảng 2.500 và 2.900:

 

CHỌN

Mã hiệu công nhân, họ, họ, lương

TỪ

người lao động

Ở ĐÂU

lương

KHÔNG

GIỮA

2500

2900

ĐẶT HÀNG

THEO

lương

MÔ TẢ

;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

Hãy thử

 

+ --- ---------- + ------------- + ------------ + ---------- + | nhân_viên | first_name | last_name | lương | + ------------- + ------------- + ------------ + -------- - + | 100 | Steven | Vua | 24000,00 | | 101 | Neena | Kochhar | 17000,00 | | 102 | Lex | De Haan | 17000,00 | | 145 | John | Russell | 14000,00 | | 146 | Karen | Đối tác | 13500,00 | | Năm 201 | Michael | Hartstein | 13000,00 | | Chương 205 | Shelley | Higgins | 12000,00 | | 108 | Nancy | Greenberg | 12000,00 | | 114 | Den | Nhanh chóng | 11000,00 | | 204 | Hermann | Baer | 10000,00 | | 109 | Daniel | Faviet | 9000,00 | | 103 | Alexander | Hunold | 9000,00 | | 176 | Jonathon | Taylor | 8600,00 | | 177 | Jack | Livingston | 8400,00 | | Năm 206 | William | Gietz | 8300,00 | | 121 | Adam | Fripp | 8200,00 | | 110 | John | Chen | 8200,00 | | 120 | Matthew | Weiss | 8000,00 | | 122 | Payam | Kaufling | 7900,00 | | 112 | Jose Manuel | Urman | 7800,00 | | 111 | Ismael | Khoa học viễn tưởng | 7700,00 | | 178 | Kimberely | Trợ cấp | 7000,00 | | 113 | Luis | Popp | 6900,00 | | 123 | Shanta | Vollman | 6500,00 | | Năm 203 | Susan | Mavris | 6500,00 | | 179 | Charles | Johnson | 6200,00 | | Năm 202 | Vỗ về | Fay | 6000,00 | | 104 | Lý Tiểu Long | Ernst | 6000,00 | | 106 | Valli | Pataballa | 4800,00 | | 105 | David | Austin | 4800,00 | | 200 | Jennifer | Whalen | 4400,00 | | 107 | Diana | Lorentz | 4200,00 | | 192 | Sarah | Chuông | 4000,00 | | Năm 193 | Britney | Everett | 3900,00 | | 115 | Alexander | Khoo | 3100,00 | + ------------- + ------------- + ------------ + -------- - +

3) Sử dụng toán tử SQL GIỮA với phạm vi ngày

Ví dụ sau sử dụng BETWEENToán tử để tìm tất cả nhân viên đã gia nhập công ty từ ngày 1 tháng 1 năm 1999 đến ngày 31 tháng 12 năm 2000 :

 

CHỌN

Mã hiệu công nhân, họ, họ, ngày thuê

TỪ

người lao động

Ở ĐÂU

Rent_date

GIỮA

'1999-01-01'

'2000-12-31'

ĐẶT HÀNG

THEO

Rent_date;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< span class = "sql" rel = "noopener noreferrer" target = "_ blank"> Dùng thử

 

+ ------------- + ------------ + ------------ + -------- ---- + | nhân_viên | first_name | last_name | ngày_mướn | + ------------- + ------------ + ------------ + --------- --- + | 107 | Diana | Lorentz | 1999-02-07 | | 178 | Kimberely | Trợ cấp | 1999-05-24 | | 119 | Karen | Colmenares | 1999-08-10 | | 113 | Luis | Popp | 1999-12-07 | | 179 | Charles | Johnson | 2000-01-04 | + ------------- + ------------ + ------------ + --------- --- +

Ví dụ sau sử dụng toán tử KHÔNG GIỮA để tìm những nhân viên chưa gia nhập công ty từ ngày 1 tháng 1 năm 1989 đến ngày 31 tháng 12 năm 1999 :

 

CHỌN

Mã hiệu công nhân, họ, họ, ngày thuê

TỪ

người lao động

Ở ĐÂU

Rent_date

KHÔNG

GIỮA

'1989-01-01'

'1992-12-31'

ĐẶT HÀNG

THEO

Rent_date;

Ngôn ngữ mã:

SQL (Ngôn ngữ truy vấn có cấu trúc)

(

sql

)

< span class = "sql" rel = "noopener noreferrer" target = "_ blank"> Dùng thử

 

+ ------------- + ------------ + ----------- + ------ ------ + | nhân_viên | first_name | last_name | ngày_mướn | + ------------- + ------------ + ----------- + ---------- - + |

100

| Steven | Vua |

1987

- 06

- 17

| |

200

| Jennifer | Whalen |

1987

- 09

- 17

| |

179

| Charles | Johnson |

2000

- 01

- 04

| + ------------- + ------------ + ----------- + ---------- - +

3

row

in

set

(0,00 giây)

Ngôn ngữ mã:

JavaScript

(

javascript

)

4) Sử dụng toán tử SQL GIỮA với một function example

Ví dụ sau sử dụng toán tử GIỮA với hàm YEAR để tìm những nhân viên đã gia nhập công ty từ năm 1990 đến 1993:

 

CHỌN Mã hiệu công nhân, họ, họ, năm (ngày_mời) tham gia_năm TỪ người lao động Ở ĐÂU năm (ngày_mời) GIỮA 1990 và 1993 ĐẶT BỞI Rent_date;

Đầu ra:

 

+ --- ---------- + ------------ + ----------- + ------------- + | nhân_viên | first_name | last_name | tham gia_năm | + ------------- + ------------ + ----------- + ---------- --- + | 103 | Alexander | Hunold | Năm 1990 | | 104 | Lý Tiểu Long | Ernst | Năm 1991 | | 102 | Lex | De Haan | Năm 1993 | + ------------- + ------------ + ----------- + ---------- --- +

Trong ví dụ này:

  • Đầu tiên, hàm YEAR () trả về năm kể từ ngày thuê.
  • Thứ hai, toán tử BETWEEN sử dụng kết quả của hàm YEAR () và kiểm tra xem nó có nằm trong phạm vi 1990 và 1993.

Nếu cơ sở dữ liệu của bạn không hỗ trợ hàm YEAR () , bạn cần sử dụng một hàm tương tự:

Cơ sở dữ liệu Chức năng trích xuất năm từ một datePostgreSQL DATE_PART ('year', Rent_date) Oracle EXTRACT (năm từ Rent_date) SQL Server YEAR (Rent_date )

Tóm tắt

  • Toán tử GIỮA trả về true nếu một giá trị nằm trong một phạm vi cụ thể.
  • Sử dụng toán tử NOT để phủ định bộ thao tác GIỮA.

Hướng dẫn này có hữu ích không?


Xem thêm những thông tin liên quan đến chủ đề truy vấn sql giữa phạm vi thời gian

SQL: Difference Between NOT IN and NOT EXISTS Operator

alt

  • Tác giả: GoLearningPoint
  • Ngày đăng: 2019-08-21
  • Đánh giá: 4 ⭐ ( 9259 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: GoLearningPoint

    NULL - Undefined value
    This can not be compared with any other values not even with another NULL.

    Difference Between Not IN and Not Exists Operator
    NOT IN Operator
    The exception is where you have a NULL in the NOT IN subquery.This causes the NOT IN to always be false and
    will not return any rows.NOT IN does not have the ability to compare the NULL values.

    When using “NOT IN”, the query performs nested full table scans.

    Not Exists Operator
    Not Exists is recommended is such cases.

    Whereas for “NOT EXISTS”, query can use an index within the sub-query.

    Select * From T1
    where Col1 NOT IN(Select Col1 From T2 Where Col1 is NOT NULL);

    Select * From T1
    where Col1 NOT EXISTS(Select Col1 From T2 Where T1.Col1=T2.Col1);

    Select * From MyTab;

    /* List Employees who are not manager*/

    /*Using NOT In*/
    Select * From MyTab
    Where ID NOT IN(Select MANAGERID From MyTab Where MANAGERID Is NOT NULL);

    Select * From MyTab T1
    Where NOT EXISTS(Select 1 From MyTab T2 Where T2.MANAGERID=T1.ID);

Truy vấn dữ liệu trong sql (Bài 5)

  • Tác giả: giasutinhoc.vn
  • Đánh giá: 5 ⭐ ( 4234 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Truy vấn postgresql giữa các phạm vi ngày

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 1582 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Với ngày (và giờ) nhiều thứ trở nên đơn giản hơn nếu bạn sử dụng >=…

Xử lý Date trong SQL

  • Tác giả: viettuts.vn
  • Đánh giá: 5 ⭐ ( 9165 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bảng dưới đây liệt kê tất cả các hàm xử lý Date trong SQL. Ngoài những hàm quan trong dưới đây, có nhiều hàm khác được hỗ trợ bởi các RDBMS khác nhau.

Truy vấn cơ bản trong SQL Server

  • Tác giả: howkteam.vn
  • Đánh giá: 4 ⭐ ( 3927 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Truy vấn cơ bản trong SQL Server

So Sánh Thời Gian Trong Sql Server? So Sánh Ngày Trong Sql Server

  • Tác giả: nguthan.vn
  • Đánh giá: 5 ⭐ ( 1226 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Kiểu dữ liệu ngày tháng (date/time) không giống những kiểu dữ liệu nguyên thuỷ thông thường nên thường gây khó khăn cho các bạn lập trình viên nhất là khi thao tác với các câu lệnh mysql, trong bài viết này mình sẽ tổng hợp và hướng dẫn các bạn làm việc với kiểu date/time trong mysql 1, Kiểu dữ liệu ngày SQL

Bài 3: Câu lệnh truy vấn dữ liệu trong SQL

  • Tác giả: timoday.edu.vn
  • Đánh giá: 5 ⭐ ( 8725 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sử dụng thành thạo câu lệnh SQL để truy vấn cơ sở dữ liệu Sinh viên như dạng tổng quát câu lệnh Select, where, order by, group by, having, as, distinct, truy vấn con

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Java - Các kiểu biến - loại java biến

By ads_php