当前位置:   article > 正文

MySQL中格式化数据 format()与date_format()!!!_mysql 格式化

mysql 格式化

一、format() 的定义与用法

1、FORMAT(数字,‘格式’) 函数将数字格式化为像"#,###,###.##"这样的格式,

  1. mysql> select ename,format(sal,'$999,999') as sal from emp;
  2. +--------+-------+
  3. | ename | sal |
  4. +--------+-------+
  5. | SMITH | 800 |
  6. | ALLEN | 1,600 |
  7. | WARD | 1,250 |
  8. | JONES | 2,975 |
  9. | MARTIN | 1,250 |
  10. | BLAKE | 2,850 |
  11. | CLARK | 2,450 |
  12. | SCOTT | 3,000 |
  13. | KING | 5,000 |
  14. | TURNER | 1,500 |
  15. | ADAMS | 1,100 |
  16. | JAMES | 950 |
  17. | FORD | 3,000 |
  18. | MILLER | 1,300 |
  19. +--------+-------+
  20. 14 rows in set, 14 warnings (0.00 sec)

2、四舍五入到指定的小数位数,然后将结果作为字符串返回。

  1. mysql> select format(120.346374,2);
  2. +----------------------+
  3. | format(120.346374,2) |
  4. +----------------------+
  5. | 120.35 |
  6. +----------------------+
  7. 1 row in set (0.00 sec)

二、date_format(日期类型数据,'日期格式')

date类型 转换为具有一定格式的varchar类型。

这个函数通常使用在查询日期方面。设置展示的日期格式

  1. mysql> select id,name,birth from t_user;
  2. +------+----------+------------+
  3. | id | name | birth |
  4. +------+----------+------------+
  5. | 1 | zhangsan | 1990-10-01 |
  6. | 2 | lisi | 1990-10-01 |
  7. +------+----------+------------+
  8. 2 rows in set (0.00 sec)

以上SQL语句其实是进行了默认的日期格式化。自动将数据库中的date类型转换成varchar类型

并采用 mysql 默认的日期格式:' %Y-%m-%d '

若采用特定格式输出则需要加date_format()函数:

  1. mysql> select id,name,date_format(birth,'%m/%d/%Y') as birth from t_user;
  2. +------+----------+------------+
  3. | id | name | birth |
  4. +------+----------+------------+
  5. | 1 | zhangsan | 10/01/1990 |
  6. | 2 | lisi | 10/01/1990 |
  7. +------+----------+------------+
  8. 2 rows in set (0.00 sec)

三、str_to_date('字符串日期','日期格式')

mysql的日期格式:

%Y 年

%m 月

%d 日

%h 时

%i 分

%s 秒

将字符串varchar类型转换为date类型

通常使用在插入insert 方面,因为插入的时候需要一个日期类型的数据,需要通过该函数将字符串转换成date。

当然,如何你提供的日期字符串是这个格式,str_to _date 函数就不需要了!!!

  1. mysql> desc t_user;
  2. +-------+-------------+------+-----+---------+-------+
  3. | Field | Type | Null | Key | Default | Extra |
  4. +-------+-------------+------+-----+---------+-------+
  5. | id | int | YES | | NULL | |
  6. | name | varchar(32) | YES | | NULL | |
  7. | birth | date | YES | | NULL | |
  8. +-------+-------------+------+-----+---------+-------+
  9. 3 rows in set (0.00 sec)
  10. mysql> insert into t_user(id,name,birth) values(1,'zhangsan','01-10-1990');
  11. ERROR 1292 (22007): Incorrect date value: '01-10-1990' for column 'birth' at row 1
  12. mysql> insert into t_user(id,name,birth) values(1,'zhangsan',str_to_date('01-10-1990','%d-%m-%Y'));
  13. Query OK, 1 row affected (0.00 sec)
  14. mysql> insert into t_user(id,name,birth) values(2,'lisi','1990-10-01');
  15. Query OK, 1 row affected (0.00 sec)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/469105
推荐阅读
相关标签
  

闽ICP备14008679号