Java + SQL
Tôi nghĩ rằng điều này phù hợp với mục tiêu của câu hỏi tốt hơn - tức là phá vỡ không chủ ý.
Giả sử đây là một ứng dụng cho đăng ký khai sinh, nơi họ ghi lại những đứa trẻ mới sinh trong cơ sở dữ liệu và cấp giấy khai sinh. Một số "thiên tài" đã thiết kế chiếc bàn giống như thế này:
CREATE TABLE birth (
year CHAR(2),
month CHAR(2),
date CHAR(2),
surname VARCHAR(50),
...
)
Và ứng dụng java để đăng ký khai sinh có một số mã dọc theo dòng:
public void recordNewBirth(...) {
...
executeQuery("INSERT INTO birth VALUES(?, ?, ?, ?, ...)", date.getYear(), date.getMonth(), date.getDate(), surname, ...);
}
Sau đó, INSERT sẽ bắt đầu thất bại vào năm 2000 và không ai có thể nhận được giấy khai sinh nữa. Lý do - java.util.Date # getYear () trả về năm trừ 1900, có 3 chữ số bắt đầu từ năm 2000.