Oracleの共通関数Truncを詳しく解説

小云云
リリース: 2019-02-23 16:21:37
オリジナル
4090 人が閲覧しました


この記事では主によく使われるOracle関数Truncとその使い方の説明を紹介しますので、必要な方は参考にしていただければ幸いです。

関連する mysql ビデオチュートリアル: "

mysql チュートリアル

"

1. Trunc(date)tru​​nc は、指定された要素を持つ日付型データをインターセプトします

構文: trunc (date, [format] )

date – 日付形式の値

format – 'mm'、'yyyy' などの日付形式。指定された日付形式から日付をインターセプトします。

例:

trunc(sysdate,'yyyy')=‘01-01月-17'(sysdate='21-11月-17'); --返回今年的第一天
trunc(sysdate,'mm')=‘01-11月-17'; --返回本月第一天
trunc(sysdate,'d')=‘19-11月-17'; --(今天星期二,一周从周日开始计算)返回本周第一天
ログイン後にコピー

2 Trunc(number ,[number1]) tru​​nc(number) は、最初の桁が四捨五入されないことを除いて、round( ) に似ています。

例:

round(89.125,2)=89.13
trunc(89.125,2)=89.12
trunc(89.125,-1)=80
ログイン後にコピー

number1 のデフォルト値は 0 です。

以下はOracleのtrunc()関数の使い方の紹介です

1.TRUNC(日付用)

TRUNC関数が指定された要素に対して切り捨てる日付の値です。

具体的な構文形式は次のとおりです:

TRUNC(date[,fmt]) その中に:

date a date value

fmt date format、日付は指定された要素形式によって切り捨てられます。それを無視して、最も近い日付から切り捨てます

この関数の使用法は次のとおりです:

TRUNC(TO_DATE('24-Nov-1999 08:00 pm'), 'dd-mon-yyyy hh:mi am')

='24-Nov-1999 12:00:00 am'

TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'),'hh' ) ='24-Nov-1999 08:00:00 am'

trunc(sysdate,'yyyy') -- その年の最初の日を返します。

trunc(sysdate,'mm') -- 月の最初の日を返します。

trunc(sysdate,'d') -- 現在の週の最初の日を返します。

trunc(sysdate,'dd') -- 現在の年、月、日を返します

2.TRUNC (数値の場合)

TRUNC 関数は、処理された値を返します。その動作メカニズムは ROUND 関数と非常によく似ています。ただし、この関数では指定されていません。小数点以下の前後の部分は四捨五入され、それに応じて選択され、すべて切り捨てられます。

具体的な構文形式は次のとおりです

TRUNC (number[,decmals])

ここで:

number はインターセプトされる値です

小数点以下の保持する必要がある桁数を指定します。オプション、無視して小数部分をすべて切り捨てます

この関数の使用法は次のとおりです: TRUNC (89.985, 2) = 89.98

TRUNC (89.985) = 89

TRUNC (89.985, -1) = 80

注: 2 番目のパラメータには負の数値を指定できます。これは、小数点左側の指定された桁数以降の部分が切り捨てられる、つまり 0 として記録されることを意味します。たとえば、パラメータが 1 の場合は 10 の位に四捨五入され、-1 の場合は 10 の位に四捨五入されます。

--Oracle trunc() 関数の使用法


/**************日期********************/
1.select trunc(sysdate) from dual --2011-3-18 今天的日期为2011-3-18
2.select trunc(sysdate, 'mm')  from  dual --2011-3-1  返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2011-1-1    返回当年第一天
4.select trunc(sysdate,'dd') from dual --2011-3-18  返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2011-1-1  返回当年第一天
6.select trunc(sysdate,'d') from dual --2011-3-13 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual  --2011-3-18 14:00:00  当前时间为14:41  
8.select trunc(sysdate, 'mi') from dual --2011-3-18 14:41:00  TRUNC()函数没有秒的精确
/***************数字********************/
/*
TRUNC(number,num_digits) 
Number 需要截尾取整的数字。 
Num_digits 用于指定取整精度的数字。Num_digits 的默认值为 0。
TRUNC()函数截取时不进行四舍五入
*/
9.select trunc(123.458) from dual --123
10.select trunc(123.458,0) from dual --123
11.select trunc(123.458,1) from dual --123.4
12.select trunc(123.458,-1) from dual --120
13.select trunc(123.458,-4) from dual --0
14.select trunc(123.458,4) from dual --123.458
15.select trunc(123) from dual --123
16.select trunc(123,1) from dual --123
17.select trunc(123,-1) from dual --120
ログイン後にコピー
Oracle でよく使われる関数 trunc については皆さんすでにご存知だと思いますので、ぜひ試してみてください。


関連する推奨事項:

Oracleカスタム分割関数の例の詳細な説明

Oracleでのテーブル関数のアプリケーションの簡単な分析

Oracleマイナスの使用法とアプリケーション例の詳細な説明

以上がOracleの共通関数Truncを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート