Chạy tuyên bố sau, MySQL dường như trộn mọi thứ lên:ngày và thời gian của datetime Bắt (? Lỗi trong MySQL)
select now(), if(false, date(now()), time(now()));
| 2013-07-24 10:06:21 | 2010-06-21 00:00:00 |
Nếu thay thế đối số thứ hai của if
với một chuỗi chữ, báo cáo kết quả xử chính xác:
select now(), if(false, 'Banana', time(now()));
| 2013-07-24 10:06:21 | 10:06:21 |
Đây có phải là lỗi hoặc một số điều kỳ quặc thực sự lạ?
'CHỌN '2013-07-24 10:06:21', NẾU (FALSE, DATE ('2013-07-24 10:06:21'), TIME ('2013-07-24 10:06: 21 ')); 'cho thấy cùng một hành vi (do đó, bây giờ() không liên quan) –
thay vào đó,' CHỌN' 2013-07-24 10:06:21 ', NẾU (TRUE, DATE (' 2013-07- 24 10:06:21 '), TIME (' 2013-07-24 10:06:21 ')); 'hoạt động đúng như mong đợi –