trunc()函数有两种用法 1:后面跟日期 2: 后面跟数字
A: SELECT a.times,to_date(a.times,'yyyymmdd'),trunc(to_date(a.times,'yyyymmdd'),'month') FROM dmf_loan_limit a
显示的结果为:
1 20080131 2008-1-31 2008-1-1
2 20080131 2008-1-31 2008-1-1
3 20080131 2008-1-31 2008-1-1
4 20080131 2008-1-31 2008-1-1
5 20080229 2008-2-29 2008-2-1
6 20080229 2008-2-29 2008-2-1
7 20080229 2008-2-29 2008-2-1
8 20080229 2008-2-29 2008-2-1
9 20080331 2008-3-31 2008-3-1
10 20080331 2008-3-31 2008-3-1
11 20080331 2008-3-31 2008-3-1
12 20080331 2008-3-31 2008-3-1
13 20080430 2008-4-30 2008-4-1
解释:trunc(to_date(a.times,'yyyymmdd'),'month') 将a.times 转换成 yyyymmdd的日期形式,并且返回a.time所在月的第一天。通过这个公式就可以求出这天到这月的第一天相差具体的天数。
B:
SELECT a.times,to_date(a.times,'yyyymmdd'),trunc(to_date(a.times,'yyyymmdd'),'year') FROM dmf_loan_limit a
1 20080131 2008-1-31 2008-1-1
2 20080131 2008-1-31 2008-1-1
3 20080131 2008-1-31 2008-1-1
4 20080131 2008-1-31 2008-1-1
5 20080229 2008-2-29 2008-1-1
6 20080229 2008-2-29 2008-1-1
7 20080229 2008-2-29 2008-1-1
8 20080229 2008-2-29 2008-1-1
9 20080331 2008-3-31 2008-1-1
10 20080331 2008-3-31 2008-1-1
11 20080331 2008-3-31 2008-1-1
12 20080331 2008-3-31 2008-1-1
13 20080430 2008-4-30 2008-1-1
解释:trunc(to_date(a.times,'yyyymmdd'),'year') 将a.times 转换成 yyyymmdd的日期形式,并且返回a.time所在年的第一天。通过这个公式就可以求出这天到这年的第一天相差具体的天数。
C: SELECT b.ASSET_AMOUNT,trunc(b.ASSET_AMOUNT,1) FROM dmf_asset_info b
1 1262965924.250000 1262965924.2
2 1262965924.250000 1262965924.2
3 7778690036.546600 7778690036.5
4 7091553348.369600 7091553348.3
5 19096360980.821899 19096360980.8
解释: 保留小数点之后的一位小数,第二位舍去不四舍五入。
D: SELECT b.ASSET_AMOUNT,trunc(b.ASSET_AMOUNT,-3) FROM dmf_asset_info b
解释 : 将小数点左边3位数字忽略为零(精确到千位)
1 1262965924.250000 1262965000
2 1262965924.250000 1262965000
3 7778690036.546600 7778690000
4 7091553348.369600 7091553000
5 19096360980.821899 19096360000