Hướng dẫn can we compare dates in mysql? - chúng ta có thể so sánh ngày trong mysql không?

Tôi muốn so sánh một ngày từ cơ sở dữ liệu nằm trong khoảng 2 ngày đã cho. Cột từ cơ sở dữ liệu là DateTime và tôi chỉ muốn so sánh nó với định dạng ngày, không phải định dạng DateTime.

SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'

Tôi gặp lỗi này khi tôi thực hiện SQL ở trên:

Bạn có lỗi trong cú pháp SQL của mình; Kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để sử dụng gần 'us_reg_date, 120)> =' 2000-07-05 'và chuyển đổi (char (10), us_reg_date, 120)

Làm thế nào vấn đề này có thể được khắc phục?

Hướng dẫn can we compare dates in mysql? - chúng ta có thể so sánh ngày trong mysql không?

Cœur

358K24 Huy hiệu vàng189 Huy hiệu bạc258 Huy hiệu Đồng24 gold badges189 silver badges258 bronze badges

Được hỏi vào ngày 6 tháng 9 năm 2010 lúc 13:51Sep 6, 2010 at 13:51

Bạn có thể thử dưới đây truy vấn,

select * from players
where 
    us_reg_date between '2000-07-05'
and
    DATE_ADD('2011-11-10',INTERVAL 1 DAY)

Tadeck

129K28 Huy hiệu vàng149 Huy hiệu bạc197 Huy hiệu đồng28 gold badges149 silver badges197 bronze badges

Đã trả lời ngày 6 tháng 9 năm 2010 lúc 14:59Sep 6, 2010 at 14:59

NiknikNik

3.9453 Huy hiệu vàng20 Huy hiệu bạc16 Huy hiệu đồng3 gold badges20 silver badges16 bronze badges

1

Đó là cú pháp SQL Server để chuyển đổi ngày thành chuỗi. Trong MySQL, bạn có thể sử dụng chức năng ngày để trích xuất ngày từ DateTime:

SELECT *
FROM players
WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'

Nhưng nếu bạn muốn tận dụng một chỉ mục trên cột us_reg_date, bạn có thể muốn thử điều này thay thế:

SELECT *
FROM players
WHERE us_reg_date >= '2000-07-05'
  AND us_reg_date < '2011-11-10' + interval 1 day

Đã trả lời ngày 6 tháng 9 năm 2010 lúc 13:55Sep 6, 2010 at 13:55

Mark Byersmark ByersMark Byers

787K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồng188 gold badges1553 silver badges1440 bronze badges

1

Những công việc này:

select date_format(date(starttime),'%Y-%m-%d') from data
where date(starttime) >= date '2012-11-02';

Lưu ý chuỗi định dạng %Y-%m-%d và định dạng của ngày đầu vào. Ví dụ 2012-11-02 thay vì

select * from players
where 
    us_reg_date between '2000-07-05'
and
    DATE_ADD('2011-11-10',INTERVAL 1 DAY)
0.

Đã trả lời ngày 30 tháng 12 năm 2013 lúc 9:07Dec 30, 2013 at 9:07

Hướng dẫn can we compare dates in mysql? - chúng ta có thể so sánh ngày trong mysql không?

RahaturrahaturRahatur

3.0653 Huy hiệu vàng33 Huy hiệu bạc47 Huy hiệu đồng3 gold badges33 silver badges47 bronze badges

Tôi đã nhận được câu trả lời.

Đây là mã:

SELECT * FROM table
WHERE STR_TO_DATE(column, '%d/%m/%Y')
  BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
    AND STR_TO_DATE('07/10/15', '%d/%m/%Y')

Hướng dẫn can we compare dates in mysql? - chúng ta có thể so sánh ngày trong mysql không?

Peterh

11.1K16 Huy hiệu vàng84 Huy hiệu bạc103 Huy hiệu đồng16 gold badges84 silver badges103 bronze badges

Đã trả lời ngày 3 tháng 12 năm 2015 lúc 5:43Dec 3, 2015 at 5:43

Đây là những gì nó làm việc cho tôi:

select * from table
where column
BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
 AND STR_TO_DATE('07/10/15', '%d/%m/%Y')

Xin lưu ý rằng tôi đã phải thay đổi str_to_date (cột, '%d/%m/%y') từ các giải pháp trước đó, vì nó đã mất nhiều tuổi để tải

Đã trả lời ngày 7 tháng 11 năm 2017 lúc 8:34Nov 7, 2017 at 8:34

Hướng dẫn can we compare dates in mysql? - chúng ta có thể so sánh ngày trong mysql không?

IriairiaIria

3571 Huy hiệu vàng8 Huy hiệu bạc20 Huy hiệu đồng1 gold badge8 silver badges20 bronze badges

Chúng ta có thể so sánh hai ngày trong SQL không?

Ở đây chúng ta sẽ thấy, truy vấn SQL để so sánh hai ngày. Điều này có thể dễ dàng thực hiện bằng cách sử dụng các toán tử bằng (=), nhỏ hơn (). Trong SQL, giá trị ngày có kiểu dữ liệu ngày chấp nhận ngày ở định dạng 'yyyy-mm-dd'. Để so sánh hai ngày, chúng tôi sẽ khai báo hai ngày và so sánh chúng bằng cách sử dụng câu lệnh IF-Else.This can be easily done using equals to(=), less than(<), and greater than(>) operators. In SQL, the date value has DATE datatype which accepts date in 'yyyy-mm-dd' format. To compare two dates, we will declare two dates and compare them using the IF-ELSE statement.

Làm thế nào tôi có thể so sánh hai ngày?

Để so sánh hai ngày, chúng tôi đã sử dụng phương thức so sánh ().Nếu cả hai ngày bằng nhau, nó in, cả hai ngày đều bằng nhau.Nếu ngày 1 lớn hơn ngày2, nó in ngày 1 đến sau ngày 2. Nếu ngày 1 nhỏ hơn ngày2, nó in ngày 1 đến sau ngày 2.compareTo() method. If both dates are equal it prints Both dates are equal. If date1 is greater than date2, it prints Date 1 comes after Date 2. If date1 is smaller than date2, it prints Date 1 comes after Date 2.

Làm cách nào tôi có thể so sánh ngày và ngày hiện tại trong cơ sở dữ liệu MySQL?

Hàm getDate (): Hàm này được sử dụng để trả về ngày và thời gian hiện tại của hệ thống cơ sở dữ liệu ...
Ít hơn- nếu ngày ít hơn ngày hôm nay ..
Lớn hơn- Nếu ngày lớn hơn ngày hôm nay ..
Hôm nay- nếu ngày giống như ngày hôm nay ..

Chúng ta có thể so sánh ngày với DateTime trong SQL không?

Bạn có thể so sánh DateTime trong SQL không?Cách đúng để so sánh các giá trị chỉ ngày với cột DateTime là bằng cách sử dụng điều kiện.Điều này sẽ đảm bảo rằng bạn sẽ nhận được các hàng nơi ngày bắt đầu từ nửa đêm và kết thúc trước nửa đêm, ví dụ:Ngày bắt đầu với '00: 00: 00.000 'và kết thúc ở "59: 59: 59.999".The right way to compare date only values with a DateTime column is by using <= and > condition. This will ensure that you will get rows where date starts from midnight and ends before midnight e.g. dates starting with '00:00:00.000' and ends at "59:59:59.999".