Tôi cần so sánh ngày trong MySQL bỏ qua phần thời gian trong cột SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 0. Tôi đã thử SQL sau đây.
SELECT * FROM order_table where order_date=date_format('2012-05-03', '%Y-%m-%d');Nó không lấy lại bất kỳ hàng nào mặc dù có một ngày SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 1 trong bảng MySQL. Làm thế nào phần thời gian trong trường SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 0 có thể bị bỏ qua trong khi so sánh ngày trong MySQL?
Khi được hỏi ngày 27 tháng 5 năm 2012 lúc 19:10May 27, 2012 at 19:10
Nho nhỏTiny
26.5K102 Huy hiệu vàng322 Huy hiệu bạc590 Huy hiệu Đồng102 gold badges322 silver badges590 bronze badges
1
Bạn có thể sử dụng chức năng SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 3:
SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03'Nhưng điều này hiệu quả hơn, nếu bảng của bạn lớn và bạn có một chỉ mục trên SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 4:
SELECT col1, col2, ..., coln FROM order_table WHERE order_date >= '2012-05-03' AND order_date < '2012-05-04'
Nhỏ xíu
26.5K102 Huy hiệu vàng322 Huy hiệu bạc590 Huy hiệu Đồng102 gold badges322 silver badges590 bronze badges
Bạn có thể sử dụng chức năng SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 3:May 27, 2012 at 19:12
Nhưng điều này hiệu quả hơn, nếu bảng của bạn lớn và bạn có một chỉ mục trên SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 4:Mark Byers
Nhỏ xíu188 gold badges1553 silver badges1440 bronze badges
1
Đã trả lời ngày 27 tháng 5 năm 2012 lúc 19:12
where YEAR(order_date)='2012' AND MONTH(order_date)='05' AND DAY(order_date)='03'Mark Byersmark Byers
Nhỏ xíu
26.5K102 Huy hiệu vàng322 Huy hiệu bạc590 Huy hiệu Đồng102 gold badges322 silver badges590 bronze badges
Bạn có thể sử dụng chức năng SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 3:May 27, 2012 at 19:17
Nhưng điều này hiệu quả hơn, nếu bảng của bạn lớn và bạn có một chỉ mục trên SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 4:James Black
Nhỏ xíu9 gold badges85 silver badges163 bronze badges
SELECT * FROM order_table WHERE date(order_date) = '2012-05-03';
Đã trả lời ngày 27 tháng 5 năm 2012 lúc 19:12May 27, 2012 at 19:13
Mark Byersmark Byerslanzz
787K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồng10 gold badges86 silver badges95 bronze badges
1
Nếu bạn muốn vượt qua một ngày thì bạn có thể thử một cái gì đó như thế này:
WHERE order_date >= '2012-05-27 00:00:00' AND order_date <= '2012-05-27 23:59:59'Bạn có thể xem xét điều này cho nhiều chức năng hơn.
Đã trả lời ngày 27 tháng 5 năm 2012 lúc 19:17May 27, 2012 at 19:51
James Blackjames đendeej
41.3k9 Huy hiệu vàng85 Huy hiệu bạc163 Huy hiệu Đồng4 gold badges28 silver badges51 bronze badges
Đã trả lời ngày 27 tháng 5 năm 2012 lúc 19:13
SELECT * FROM order_table where date_format(order_date, '%Y-%m-%d')='2012-05-03';LanszzzzzJun 22, 2017 at 12:15
40.8k10 Huy hiệu vàng86 Huy hiệu bạc95 Huy hiệu Đồng
SELECT * FROM order_table WHERE order_date between('2012-05-03 0:0:0' and '2012-05-03 23:59:59')
Nhỏ xíu
26.5K102 Huy hiệu vàng322 Huy hiệu bạc590 Huy hiệu Đồng102 gold badges322 silver badges590 bronze badges
Bạn có thể sử dụng chức năng SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 3:May 27, 2012 at 19:20
Nhưng điều này hiệu quả hơn, nếu bảng của bạn lớn và bạn có một chỉ mục trên SELECT col1, col2, ..., coln FROM order_table WHERE date(order_date) = '2012-05-03' 4:
DATEDIFF() Subtract two dates TIMEDIFF() Subtract time TIMESTAMPDIFF() Subtract an interval from a datetime expression PERIOD_DIFF() Return the number of months between periodsNhỏ xíu
Đã trả lời ngày 27 tháng 5 năm 2012 lúc 19:12Sep 21, 2016 at 11:12
Mark Byersmark ByersAugustas
787K188 Huy hiệu vàng1553 Huy hiệu bạc1440 Huy hiệu đồng23 silver badges30 bronze badges
Nếu bạn muốn vượt qua một ngày thì bạn có thể thử một cái gì đó như thế này:
Bạn có thể xem xét điều này cho nhiều chức năng hơn.
DATE_FORMAT(CONVERT_TZ(`order_item`.created, '+0:00', '+2:00'), '%d/%m/%Y %H:%i') BETWEEN ('12/02/2018 01:42') AND ('12/02/2018 10:51')Đã trả lời ngày 27 tháng 5 năm 2012 lúc 19:17Feb 21, 2018 at 16:54
James Blackjames đenshareef
41.3k9 Huy hiệu vàng85 Huy hiệu bạc163 Huy hiệu Đồng13 gold badges58 silver badges88 bronze badges