以下は、OracleDatabaseの日時値から秒の部分を返すために使用できる2つの関数です。
EXTRACT()
機能
EXTRACT(datetime)
関数は、日時値からさまざまな日時部分を抽出するために使用されます。これには秒の部分が含まれます。
次に例を示します:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL;
結果:
37
SECOND
日時値から秒の部分を抽出するキーワード。これには、秒の一部が含まれます:
SELECT
EXTRACT(
SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
)
FROM DUAL;
結果:
37.123456789
関連するキーワードに変更することで、他の日付部分を取得できます。たとえば、YEAR
、MONTH
、HOUR
、MINUTE
、など。
DATE
などの他の日時値で関数を使用することもできます 。
TO_CHAR(datetime)
機能
TO_CHAR(datetime)
を使用することもできます 日時値から秒コンポーネントを取得するための代替メソッドとして機能します。
この関数は、最初の引数として日時または間隔の値を受け入れ、2番目の引数としてフォーマットモデルを受け入れます。次に、関数は値をVARCHAR2
のデータ型に変換します 指定された形式で。
formatモデルは、datetime/interval値を返すフォーマットを指定します。フォーマットモデルは、1つ以上のフォーマット要素で構成されます。これにより、目的の形式を反映するように慎重に結果を作成できます。
秒のみを返したい場合は、そのコンポーネントを返すフォーマット要素の1つを使用できます。
日時値から秒コンポーネントを返すときに使用できるいくつかの異なるフォーマット要素があります。
最も明白なものはSS
です フォーマット要素:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL;
結果:
37
ご覧のとおり、SS
format要素は秒の部分のみを返しますが、小数秒は返しません。
フラクショナル秒
分数秒を含める場合は、FF
を使用できます。 フォーマット要素。 X
も使用できます 基数文字(整数部分と小数部分を区切るために使用される記号)を指定するには:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
結果:
37.123456789
FF
に数値を追加して、精度を制限することもできます。 パート:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL;
結果:
37.12345
番号は1
にすることができます 9
まで 。
独自の基数文字を明示的に指定することもできますが、たとえば、終止符(.
) )、X
format要素は、さまざまな言語/地域間での移植に役立ちます。
上記の例を実行すると、NLS_TERRITORY
パラメータがAUSTRALIA
に設定されました 、その結果、基数文字が終止符になりました。
NLS_TERRITORY
を変更するとどうなりますか GERMANY
へのパラメータ :
ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
結果:
37,123456789
これで、基数文字はコンマになります。
真夜中過ぎの秒数
SSSSS
を使用できます 真夜中過ぎの秒を返すには:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL;
結果:
00065