1、FORMAT(数字,‘格式’) 函数将数字格式化为像"#,###,###.##"这样的格式,
mysql> select ename,format(sal,'$999,999') as sal from emp;
+--------+-------+
| ename | sal |
+--------+-------+
| SMITH | 800 |
| ALLEN | 1,600 |
| WARD | 1,250 |
| JONES | 2,975 |
| MARTIN | 1,250 |
| BLAKE | 2,850 |
| CLARK | 2,450 |
| SCOTT | 3,000 |
| KING | 5,000 |
| TURNER | 1,500 |
| ADAMS | 1,100 |
| JAMES | 950 |
| FORD | 3,000 |
| MILLER | 1,300 |
+--------+-------+
14 rows in set, 14 warnings (0.00 sec)
2、四舍五入到指定的小数位数,然后将结果作为字符串返回。
mysql> select format(120.346374,2);
+----------------------+
| format(120.346374,2) |
+----------------------+
| 120.35 |
+----------------------+
1 row in set (0.00 sec)
将date类型 转换为具有一定格式的varchar类型。
这个函数通常使用在查询日期方面。设置展示的日期格式
mysql> select id,name,birth from t_user;
+------+----------+------------+
| id | name | birth |
+------+----------+------------+
| 1 | zhangsan | 1990-10-01 |
| 2 | lisi | 1990-10-01 |
+------+----------+------------+
2 rows in set (0.00 sec)
以上SQL语句其实是进行了默认的日期格式化。自动将数据库中的date类型转换成varchar类型
并采用 mysql 默认的日期格式:' %Y-%m-%d '
若采用特定格式输出则需要加date_format()函数:
mysql> select id,name,date_format(birth,'%m/%d/%Y') as birth from t_user;
+------+----------+------------+
| id | name | birth |
+------+----------+------------+
| 1 | zhangsan | 10/01/1990 |
| 2 | lisi | 10/01/1990 |
+------+----------+------------+
2 rows in set (0.00 sec)
mysql的日期格式:
%Y 年
%m 月
%d 日
%h 时
%i 分
%s 秒
将字符串varchar类型转换为date类型
通常使用在插入insert 方面,因为插入的时候需要一个日期类型的数据,需要通过该函数将字符串转换成date。
当然,如何你提供的日期字符串是这个格式,str_to _date 函数就不需要了!!!
mysql> desc t_user;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(32) | YES | | NULL | |
| birth | date | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> insert into t_user(id,name,birth) values(1,'zhangsan','01-10-1990');
ERROR 1292 (22007): Incorrect date value: '01-10-1990' for column 'birth' at row 1
mysql> insert into t_user(id,name,birth) values(1,'zhangsan',str_to_date('01-10-1990','%d-%m-%Y'));
Query OK, 1 row affected (0.00 sec)
mysql> insert into t_user(id,name,birth) values(2,'lisi','1990-10-01');
Query OK, 1 row affected (0.00 sec)