Nhìn vào giá trị:
'2013-31-01 16:00:40'
Đó là cố gắng sử dụng tháng trong tổng số 31.
Không rõ liệu điều đó chỉ có nghĩa là dữ liệu thử nghiệm của bạn sai hay bạn cần thay đổi những dòng này:
SELECT SUBSTRING(DATE,3,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,1,1) FROM db.test_table INTO LDAY;
tới:
SELECT SUBSTRING(DATE,1,2) FROM db.test_table INTO LMONTH;
SELECT SUBSTRING(DATE,4,2) FROM db.test_table INTO LDAY;
Lưu ý sự thay đổi từ 1 thành 2 đối với chuỗi con bắt đầu từ 1, và sự thay đổi của vị trí bắt đầu thứ hai từ 3 thành 4. Bạn muốn giá trị tháng và ngày có hai chữ số, phải không? Nếu định dạng dữ liệu của bạn thực sự là D / M / YYYY (tức là chỉ sử dụng hai chữ số khi chúng được yêu cầu) thì bạn sẽ không thể sử dụng các vị trí chuỗi con cố định.