GBase 8a函数TRUNCATE()和TRUNC()说明
TRUNCATE(X,D)
函数说明:返回数值X截取到D位小数后的数字。D为可选参数,默认值为0。
如果D为0,结果将不包含小数点和小数部分。
如果D为负数,表示截去(归零)X值小数点左边第D位开始后面所有低位的值。
示例1:X为“1.223”,小数点后保留一位。
gbase> SELECT TRUNCATE(1.223,1) FROM dual;
+-------------------+
| TRUNCATE(1.223,1) |
+-------------------+
| 1.2 |
+-------------------+
1 row in set
示例2:X为“1.999”,小数点后保留一位。
gbase> SELECT TRUNCATE(1.999,1) FROM dual;
+-------------------+
| TRUNCATE(1.999,1) |
+-------------------+
| 1.9 |
+-------------------+
1 row in set
示例3:D为“0”,返回值不包含小数点和小数部分。
gbase> SELECT TRUNCATE(1.999,0) FROM dual;
+-------------------+
| TRUNCATE(1.999,0) |
+-------------------+
| 1 |
+-------------------+
1 row in set
示例4:X为“-1.999”,小数点后保留一位。
gbase> SELECT TRUNCATE(-1.999,1) FROM dual;
+--------------------+
| TRUNCATE(-1.999,1) |
+--------------------+
| -1.9 |
+--------------------+
1 row in set
示例5:D为-2,个位十位归零。
gbase> SELECT TRUNCATE(122,-2) FROM dual;
+------------------+
| TRUNCATE(122,-2) |
+------------------+
| 100 |
+------------------+
1 row in set
示例6:X为表达式。
gbase> SELECT TRUNCATE(10.28*100,0) FROM dual;
+-----------------------+
| TRUNCATE(10.28*100,0) |
+-----------------------+
| 1028 |
+-----------------------+
1 row in set
TRUNC(date/datetime[, format])
函数说明:TRUNC函数返回以指定元素格式截去一部分的日期值。
date/datetime为必选参数,表示输入的一个日期值。
format可选参数,表示日期格式,用以指定的元素格式来截去输入的日期值。如果省略此参数,则由最近的日期截去。
format支持类型说明
year 返回当年第一天
yyyy 返回当年第一天
month 返回当月第一天
mm 返回当月第一天
dd 返回当天的日期
hh 返回当前时刻0分0秒的日期时间。如果第一个参数是current_date,则返回当天凌晨0点0分0秒的日期,如trunc(current_date,'hh')。
mi 返回当前时刻0秒的日期时间。如果第一个参数是current_date,则返回当天凌晨0点0分0秒的日期,如trunc(current_date,'mi')。
示例1:返回执行当年的第一天。
gbase> SELECT TRUNC(current_date,'year') FROM dual;
+----------------------------+
| TRUNC(current_date,'year') |
+----------------------------+
| 2020-01-01 |
+----------------------------+
1 row in set
示例2:返回执行当年的第一天。
gbase> SELECT TRUNC(current_date,'yyyy') FROM dual;
+----------------------------+
| TRUNC(current_date,'yyyy') |
+----------------------------+
| 2020-01-01 |
+----------------------------+
1 row in set
示例3:返回执行当月的第一天。
gbase> SELECT TRUNC(current_date,'mm') FROM dual;
+--------------------------+
| TRUNC(current_date,'mm') |
+--------------------------+
| 2020-04-01 |
+--------------------------+
1 row in set
示例4:返回执行当天的日期。
gbase> SELECT TRUNC(current_date,'dd') FROM dual;
+--------------------------+
| TRUNC(current_date,'dd') |
+--------------------------+
| 2020-04-02 |
+--------------------------+
1 row in set
示例5:返回当时时间到小时精度的日期时间。
gbase> select trunc(current_timestamp,'hh');
+-------------------------------+
| trunc(current_timestamp,'hh') |
+-------------------------------+
| 2023-07-04 17:00:00 |
+-------------------------------+
1 row in set
gbase> select trunc('2023-07-04 13:13:13','hh');
+-----------------------------------+
| trunc('2023-07-04 13:13:13','hh') |
+-----------------------------------+
| 2023-07-04 13:00:00 |
+-----------------------------------+
1 row in set
//current_date会返回0时0分0秒的时间
gbase> SELECT TRUNC(current_date,'hh') FROM dual;
+--------------------------+
| TRUNC(current_date,'hh') |
+--------------------------+
| 2020-04-02 00:00:00 |
+--------------------------+
1 row in set
示例6:返回当时时间到分钟精度的日期时间。
gbase> select trunc('2023-07-04 13:13:13','mi');
+-----------------------------------+
| trunc('2023-07-04 13:13:13','mi') |
+-----------------------------------+
| 2023-07-04 13:13:00 |
+-----------------------------------+
1 row in set
gbase> select trunc(current_timestamp,'mi');
+-------------------------------+
| trunc(current_timestamp,'mi') |
+-------------------------------+
| 2023-07-04 17:11:00 |
+-------------------------------+
1 row in set
//current_date会返回0时0分0秒的时间
gbase> SELECT TRUNC(current_date,'mi') FROM dual;
+--------------------------+
| TRUNC(current_date,'mi') |
+--------------------------+
| 2020-04-02 00:00:00 |
+--------------------------+
1 row in set
评论
热门帖子
- 12025-12-01浏览数:182763
- 22023-05-09浏览数:25057
- 42023-09-25浏览数:18525
- 52020-05-11浏览数:17528