Di MySQL, Anda dapat menggunakan GET_FORMAT()
fungsi untuk mengembalikan string format untuk argumen yang disediakan. Ini dapat berguna ketika Anda perlu menyediakan string format ke fungsi lain, seperti DATE_FORMAT()
atau STR_TO_DATE()
.
Sintaks
Sintaks resminya seperti ini:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Contoh 1 – Penggunaan Dasar
Berikut ini contoh untuk mendemonstrasikan cara kerjanya.
SELECT GET_FORMAT(DATE,'USA');
Hasil:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Jadi contoh ini mengembalikan format string untuk USA. Sekarang kita dapat mengambil string format itu dan menggunakannya dalam berbagai fungsi pemformatan tanggal.
Seperti ini:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Hasil:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Namun, kami juga dapat meneruskan fungsi ini secara langsung ke DATE_FORMAT()
fungsi. Seperti ini:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Hasil:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Jadi ini menyelamatkan kita dari keharusan mengingat format string apa yang akan digunakan – GET_FORMAT()
melakukan itu untuk kita.
Contoh 2 – Nilai Tanggal
Contoh ini mencantumkan semua variasi argumen kedua ketika argumen pertama adalah DATE
.
SELECT GET_FORMAT(DATE,'USA') AS 'USA', GET_FORMAT(DATE,'JIS') AS 'JIS', GET_FORMAT(DATE,'ISO') AS 'ISO', GET_FORMAT(DATE,'EUR') AS 'EUR', GET_FORMAT(DATE,'INTERNAL') AS 'INTERNAL';
Hasil:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Contoh 3 – Nilai Datetime
Contoh ini mencantumkan semua variasi argumen kedua ketika argumen pertama adalah DATETIME
.
SELECT GET_FORMAT(DATETIME,'USA') AS 'USA', GET_FORMAT(DATETIME,'JIS') AS 'JIS', GET_FORMAT(DATETIME,'ISO') AS 'ISO', GET_FORMAT(DATETIME,'EUR') AS 'EUR', GET_FORMAT(DATETIME,'INTERNAL') AS 'INTERNAL';
Hasil:
+-------------------+-------------------+-------------------+-------------------+--------------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------------+-------------------+-------------------+-------------------+--------------+ | %Y-%m-%d %H.%i.%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H.%i.%s | %Y%m%d%H%i%s | +-------------------+-------------------+-------------------+-------------------+--------------+
Contoh 4 – Nilai Waktu
Contoh ini mencantumkan semua variasi argumen kedua ketika argumen pertama adalah TIME
.
SELECT GET_FORMAT(TIME,'USA') AS 'USA', GET_FORMAT(TIME,'JIS') AS 'JIS', GET_FORMAT(TIME,'ISO') AS 'ISO', GET_FORMAT(TIME,'EUR') AS 'EUR', GET_FORMAT(TIME,'INTERNAL') AS 'INTERNAL';
Hasil:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Penentu Satuan
String format yang ditampilkan dapat terdiri dari kombinasi apa pun dari penentu berikut.
Specifier | Deskripsi |
---|---|
%a | Singkat nama hari kerja (Sun ..Sat ) |
%b | Nama bulan disingkat (Jan ..Dec ) |
%c | Bulan, numerik (0 ..12 ) |
%D | Hari dalam sebulan dengan akhiran bahasa Inggris (0th , 1st , 2nd , 3rd , …) |
%d | Hari dalam sebulan, numerik (00 ..31 ) |
%e | Hari dalam sebulan, numerik (0 ..31 ) |
%f | Mikrodetik (000000 ..999999 ) |
%H | Jam (00 ..23 ) |
%h | Jam (01 ..12 ) |
%I | Jam (01 ..12 ) |
%i | Menit, numerik (00 ..59 ) |
%j | Hari dalam setahun (001 ..366 ) |
%k | Jam (0 ..23 ) |
%l | Jam (1st ..12 ) |
%M | Nama bulan (January ..December ) |
%m | Bulan, numerik (00 ..12 ) |
%p | AM atau PM |
%r | Waktu, 12 jam (hh:mm:ss diikuti oleh AM atau PM ) |
%S | Detik (00 ..59 ) |
%s | Detik (00 ..59 ) |
%T | Waktu, 24 jam (hh:mm:ss ) |
%U | Minggu (00 ..53 ), di mana hari Minggu adalah hari pertama dalam seminggu; WEEK() modus 0 |
%u | Minggu (00 ..53 ), di mana Senin adalah hari pertama dalam seminggu; WEEK() mode 1 |
%V | Minggu (01 ..53 ), di mana hari Minggu adalah hari pertama dalam seminggu; WEEK() modus 2; digunakan dengan %X |
%v | Minggu (01 ..53 ), di mana Senin adalah hari pertama dalam seminggu; WEEK() modus 3; digunakan dengan %x |
%W | Nama hari kerja (Sunday ..Saturday ) |
%w | Hari dalam seminggu (0 =Minggu..6 =Sabtu) |
%X | Tahun untuk minggu di mana hari Minggu adalah hari pertama dalam seminggu, numerik, empat digit; digunakan dengan %V |
%x | Tahun untuk minggu, di mana Senin adalah hari pertama dalam seminggu, numerik, empat digit; digunakan dengan %v |
%Y | Tahun, numerik, empat digit |
%y | Tahun, numerik (dua digit) |
%% | Sebuah % literal karakter |
% | x , untuk setiap “x ” tidak tercantum di atas |