Đôi khi bạn có thể cần chuyển đổi dữ liệu trong MySQL hoặc nhập dữ liệu ép kiểu trong MySQL. Đây là cách chuyển đổi dữ liệu từ kiểu dữ liệu này sang kiểu dữ liệu khác bằng hàm CONVERT của MySQL. Nó cũng có thể được sử dụng để chuyển đổi dữ liệu từ bộ ký tự này sang bộ ký tự khác
Cách chuyển đổi dữ liệu trong MySQL
Dưới đây là các bước chuyển đổi dữ liệu trong MySQL bằng hàm MySQL CONVERT. Đây là cú pháp của hàm MySQL CONVERT
CONVERT(input_value, data_type)Trong hàm trên, bạn cần cung cấp input_value dưới dạng chuỗi ký tự hoặc tên cột và data_type mà bạn muốn chuyển đổi dữ liệu này sang. Giống như MySQL CAST, bạn có thể truyền dữ liệu thành các kiểu dữ liệu BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED, UNSIGNED
Ví dụ: đây là cách chuyển đổi giá trị bằng chữ sang loại dữ liệu khác
CONVERT(1, char)và đây là cách chuyển đổi một cột (e. g id) sang kiểu dữ liệu khác
CONVERT(id, char)
Đây là cú pháp MySQL CONVERT để chuyển đổi bộ ký tự
CONVERT(input_value USING character_set)Trong hàm trên, bạn cần cung cấp input_value dưới dạng chuỗi ký tự hoặc tên cột và character_set mà bạn muốn chuyển đổi dữ liệu này thành
Đây là một ví dụ về cách truyền dưới dạng latin1
mysql> select convert('test string' using 'latin1'); +---------------------------------------+ | convert('test string' using 'latin1') | +---------------------------------------+ | test string | +---------------------------------------+
Phần thưởng đọc. Cách gõ Cast trong MySQL
Các ví dụ CHUYỂN ĐỔI MySQL
Chúng ta hãy xem xét một số ví dụ về chức năng CONVERT của MySQL
Chuỗi CHUYỂN ĐỔI MySQL đến ngày
Đây là cách chuyển đổi chuỗi thành ngày
mysql> select convert('2020-08-01',date); +----------------------------+ | convert('2020-08-01',date) | +----------------------------+ | 2020-08-01 | +----------------------------+Phần thưởng đọc. Truy vấn khôi phục MySQL
Chuỗi CHUYỂN ĐỔI MySQL thành số thập phân
Đây là cách chuyển đổi chuỗi thành số thập phân
mysql> select convert('1.234',decimal(4,3)); +-------------------------------+ | convert('1.234',decimal(4,3)) | +-------------------------------+ | 1.234 | +-------------------------------+Phần thưởng đọc. Cách sử dụng Tổng hợp MySQL
Chuỗi CHUYỂN ĐỔI MySQL thành gấp đôi
MySQL không hỗ trợ chuyển đổi sang kiểu dữ liệu kép. Bạn sẽ cần chuyển đổi chuỗi thành số thập phân
mysql> select convert('2.134',decimal(4,3)); +-------------------------------+ | convert('2.134',decimal(4,3)) | +-------------------------------+ | 2.134 | +-------------------------------+
Chuỗi CHUYỂN ĐỔI MySQL để nổi
Một lần nữa, MySQL không hỗ trợ chuyển đổi sang kiểu dữ liệu dấu phẩy động. Bạn sẽ cần chuyển đổi chuỗi thành số thập phân
mysql> select convert('2.134',decimal(4,3)); +-------------------------------+ | convert('2.134',decimal(4,3)) | +-------------------------------+ | 2.134 | +-------------------------------+Phần thưởng đọc. Cách vô hiệu hóa kiểm tra khóa ngoại trong MySQL
Chuỗi CHUYỂN ĐỔI MySQL thành int
Đây là một ví dụ để MySQL chuyển đổi chuỗi thành số nguyên đã ký. Xin lưu ý rằng bạn chỉ có thể chuyển sang các loại dữ liệu số nguyên KHÔNG KÝ hoặc ĐÃ KÝ. Bạn không thể sử dụng INT trong chức năng CAST
mysql> select cast('123' as signed); +------------------------+ | cast('123' as signed) | +------------------------+ | 1 | +------------------------+
MySQL CHUYỂN ĐỔI Ngày giờ đến nay
Đây là cách chuyển đổi datetime thành date. Bạn cũng có thể sử dụng nó để chuyển đổi dấu thời gian thành ngày
CONVERT(1, char) 0Phần thưởng đọc. Cách kiểm tra phiên bản MySQL
MySQL CHUYỂN ĐỔI Blob thành văn bản
MySQL CONVERT không hỗ trợ chuyển đổi sang kiểu dữ liệu văn bản. Bạn cần chuyển đổi blog thành char. Đây là một mẫu để chuyển đổi blob nhỏ thành char
Hàm CAST() trong MySQL được sử dụng để chuyển đổi một giá trị từ kiểu dữ liệu này sang kiểu dữ liệu khác được chỉ định trong biểu thức. Nó chủ yếu được sử dụng với các mệnh đề WHERE, HAVING và JOIN. Hàm này tương tự như hàm CONVERT() trong MySQL
Sau đây là các kiểu dữ liệu mà chức năng này hoạt động hoàn hảo
DatatypeDescriptionsDATENó chuyển đổi giá trị thành kiểu dữ liệu DATE ở định dạng "YYYY-MM-DD". Nó hỗ trợ phạm vi NGÀY trong '1000-01-01' đến '9999-12-31'. DATETIMENó chuyển đổi giá trị thành kiểu dữ liệu DATETIME trong "YYYY-MM-DD HH. MM. định dạng SS". Nó hỗ trợ phạm vi trong '1000-01-01 00. 00. 00' đến '9999-12-31 23. 59. 59'. TIMENó chuyển đổi giá trị thành kiểu dữ liệu TIME trong "HH. MM. định dạng SS". Nó hỗ trợ phạm vi thời gian trong '-838. 59. 59' đến '838. 59. 59'. CHARIt chuyển đổi một giá trị thành kiểu dữ liệu CHAR chứa chuỗi có độ dài cố định. DECIMALIit chuyển đổi một giá trị thành kiểu dữ liệu DECIMAL chứa chuỗi thập phân. SIGNEDNó chuyển đổi một giá trị thành kiểu dữ liệu SIGNED chứa số nguyên 64 bit đã ký. UNSIGNEDNó chuyển đổi một giá trị thành kiểu dữ liệu UNSIGNED chứa số nguyên 64 bit không dấu. BINARYNó chuyển đổi một giá trị thành kiểu dữ liệu BINARY chứa chuỗi nhị phâncú pháp
Sau đây là cú pháp của hàm CAST() trong MySQL
Giải thích thông số
Cú pháp này chấp nhận hai tham số, sẽ được thảo luận bên dưới
Tham sốYêu cầuMô tảBiểu thứcYêu cầuĐó là một giá trị sẽ được chuyển đổi thành một kiểu dữ liệu cụ thể khác. DatatypeRequiredĐó là một giá trị hoặc kiểu dữ liệu trong đó giá trị biểu thức cần được chuyển đổiGiá trị trả về
Sau khi chuyển đổi sẽ trả về giá trị kiểu dữ liệu mà ta muốn chuyển đổi
Hỗ trợ phiên bản MySQL
Chức năng CAST có thể hỗ trợ các phiên bản MySQL sau
- mysql 8. 0
- mysql 5. 7
- mysql 5. 6
- mysql 5. 5
- mysql 5. 1
- mysql 5. 0
- mysql 4. 1
- mysql 4. 0
Hãy để chúng tôi hiểu chức năng MySQL CAST() với các ví dụ sau. Chúng ta có thể sử dụng trực tiếp hàm CAST với câu lệnh SELECT
ví dụ 1
Câu lệnh này chuyển đổi giá trị thành kiểu dữ liệu DATE
đầu ra
ví dụ 2
Câu lệnh này chuyển đổi giá trị thành kiểu dữ liệu SIGNED
đầu ra
ví dụ 3
Câu lệnh này chuyển đổi giá trị thành kiểu dữ liệu UNSIGNED
đầu ra
Ví dụ 4
Đôi khi cần chuyển đổi chuỗi thành số nguyên một cách rõ ràng, hãy sử dụng câu lệnh sau để chuyển đổi giá trị thành kiểu dữ liệu INTEGER
đầu ra
Ví dụ 5
Câu lệnh sau trước tiên chuyển đổi một giá trị số nguyên thành kiểu dữ liệu chuỗi và sau đó thực hiện nối với một chuỗi được chỉ định khác
đầu ra
Ví dụ 6
Trong ví dụ này, chúng ta sẽ xem cách hàm CAST hoạt động với bảng. Trước tiên chúng ta hãy tạo một bảng "Đơn hàng" chứa dữ liệu sau
Trong bảng trên, chúng ta có thể thấy Order_Date thuộc kiểu dữ liệu DATE. Bây giờ, nếu chúng ta muốn lấy tên sản phẩm giữa các khoảng thời gian đã chọn, hãy thực hiện câu lệnh bên dưới. Ở đây, chuỗi ký tự được chuyển đổi thành giá trị dấu thời gian trước khi đánh giá điều kiện WHERE