Nếu tôi làm một truy vấn như sau:Mysql HOUR() chuyển đổi -HH thành HH, đây có phải là một tính năng hay một lỗi không?
SELECT HOUR(TIMEDIFF('2012-08-12 02:25:00',
'2012-09-14 02:25:33')) as result
kết quả là 792, mặc dù tôi đã trừ một dữ liệu quá khứ từ một ngày trong tương lai.
Nếu tôi loại bỏ HOUR()
và làm:
SELECT TIMEDIFF('2012-08-12 02:25:00',
'2012-09-14 02:25:33') as result
Sau đó, giá trị là -792:00:33
. Do đó rõ ràng HOUR()
đang chuyển đổi -792 thành 792. Tôi đã thử nó với các ngày khác và kết quả là như nhau (luôn luôn là giờ tích cực được trả về).
The manual không nói gì về hành vi này.
Đây có phải là lỗi hay là một tính năng mà tôi có thể dựa vào để có mặt trên tất cả các cài đặt mysql gần đây?
Những tuyên bố thứ hai ném một lỗi cho tôi: * định dạng Xấu cho Time '-792: 00: 33' * Xem: http://www.sqlfiddle.com/#! 2/6eb12/2 –
Thực ra nó hoạt động chính xác như câu đầu tiên trong spec (trong liên kết bạn đã đăng): 'Trả về giờ cho thời gian.' - nó bỏ qua giây theo cách mà nó cần! – alfasin
@a_horse_with_no_name của nó làm việc trên cùng của tôi, là trang web đó chạy mysql? –