Di bawah ini adalah dua fungsi yang dapat digunakan untuk mengembalikan bagian detik dari nilai datetime di Oracle Database.
EXTRACT()
Fungsi
EXTRACT(datetime)
fungsi digunakan untuk mengekstrak berbagai bagian datetime dari nilai datetime. Ini termasuk bagian detik.
Ini contohnya:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL;
Hasil:
37
Ini adalah SECOND
kata kunci yang mengekstrak bagian detik dari nilai datetime. Ini akan mencakup setiap detik pecahan:
SELECT
EXTRACT(
SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
)
FROM DUAL;
Hasil:
37.123456789
Kita bisa mendapatkan bagian tanggal lainnya dengan mengubahnya menjadi kata kunci yang relevan. Misalnya, YEAR
, MONTH
, HOUR
, MINUTE
, dll.
Kita juga dapat menggunakan fungsi tersebut dengan nilai datetime lainnya, seperti DATE
.
TO_CHAR(datetime)
Fungsi
Kita juga dapat menggunakan TO_CHAR(datetime)
berfungsi sebagai metode alternatif untuk mendapatkan komponen detik dari nilai datetime.
Fungsi ini menerima nilai datetime atau interval sebagai argumen pertama, dan model format sebagai argumen kedua. Fungsi kemudian mengonversi nilai menjadi tipe data VARCHAR2
dalam format yang ditentukan.
Model format menentukan format untuk mengembalikan nilai datetime/interval. Model format terdiri dari satu atau lebih elemen format. Hal ini memungkinkan kami untuk dengan hati-hati menyusun hasil untuk mencerminkan format yang kami inginkan.
Jika kita hanya ingin mengembalikan detik, kita dapat menggunakan salah satu elemen format yang mengembalikan komponen tersebut.
Ada beberapa elemen format berbeda yang dapat kita gunakan saat mengembalikan komponen detik dari nilai datetime.
Yang paling jelas adalah SS
elemen format:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL;
Hasil:
37
Seperti yang kita lihat, SS
elemen format hanya mengembalikan bagian detik, tetapi bukan pecahan detik.
Detik Pecahan
Jika kita ingin memasukkan pecahan detik, kita dapat menggunakan FF
elemen format. Kami juga dapat menggunakan X
untuk menentukan karakter radix (simbol yang digunakan untuk memisahkan bagian bilangan bulat dari bagian pecahan):
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Hasil:
37.123456789
Anda juga dapat membatasi presisi dengan menambahkan angka ke FF
bagian:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL;
Hasil:
37.12345
Nomornya bisa 1
melalui 9
.
Meskipun Anda dapat secara eksplisit memberikan karakter radix Anda sendiri – misalnya, titik (.
), X
elemen format dapat berguna untuk porting lintas bahasa/wilayah yang berbeda.
Ketika saya menjalankan contoh di atas, NLS_TERRITORY
saya parameter disetel ke AUSTRALIA
, yang mengakibatkan karakter radix menjadi titik.
Inilah yang terjadi ketika saya mengubah NLS_TERRITORY
saya parameter ke GERMANY
:
ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL;
Hasil:
37,123456789
Sekarang karakter radix adalah koma.
Tengah Detik Lewat
Kita bisa menggunakan SSSSS
untuk mengembalikan detik lewat tengah malam:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL;
Hasil:
00065