Có, bạn có thể lưu double và date trong VARCHAR. Hãy cùng tạo một bảng trước:
mysql> CREATE TABLE DemoTable (
-> Amount VARCHAR(20),
-> JoiningDate VARCHAR(20)
-> ); Query OK, 0 rows affected (0.96 sec)
Chèn một số bản ghi vào bảng bằng lệnh INSERT. Chúng ta đang chèn giá trị double và date dạng varchar:
mysql> INSERT INTO DemoTable VALUES('150.50','Oct 10,2019'); Query OK, 1 row affected (0.91 sec)
mysql> INSERT INTO DemoTable VALUES('173.45','Sept 11,2018'); Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable VALUES('173.90','Jan 01,2017'); Query OK, 1 row affected (0.16 sec)
Hiển thị tất cả bản ghi từ bảng bằng lệnh SELECT:
mysql> SELECT * FROM DemoTable;
Kết quả sẽ như sau:
+--------+--------------+ | Amount | JoiningDate | +--------+--------------+ | 150.50 | Oct 10,2019 | | 173.45 | Sept 11,2018 | | 173.90 | Jan 01,2017 | +--------+--------------+ 3 rows in set (0.00 sec)
Bây giờ, chúng ta đang chuyển đổi các bản ghi VARCHAR sang kiểu DOUBLE và DATE:
mysql> SELECT Amount+0.0 AS DoubleValue, STR_TO_DATE(JoiningDate, '%M %d,%Y') AS Date FROM DemoTable;
Kết quả sẽ như sau:
+-------------+------------+ | DoubleValue | Date | +-------------+------------+ | 150.5 | 2019-10-10 | | 173.45 | 2018-09-11 | | 173.9 | 2017-01-01 | +-------------+------------+ 3 rows in set (0.04 sec)