Artikel ini memberikan referensi untuk penentu format tanggal dan waktu khusus yang dapat digunakan saat memformat tanggal dan/atau waktu menggunakan FORMAT()
fungsi di SQL Server, bersama dengan contoh.
Anda dapat menggabungkan salah satu penentu format ini untuk menghasilkan string format yang disesuaikan. Lihat di bawah untuk contoh kode dan penjelasan tentang cara kerja string format khusus.
Contoh dalam tabel mengasumsikan datetimeoffset nilai 2080-05-01 23:09:08.1234567 +07:00
.
Format String | Deskripsi | Contoh |
---|---|---|
d | Hari dalam sebulan, dari tanggal 1 hingga 31. | 1 |
dd | Hari dalam sebulan, dari 01 hingga 31. | 01 |
ddd | Nama singkat dari hari dalam seminggu. | Rabu |
dddd | Nama lengkap hari dalam seminggu. | Rabu |
f | Sepersepuluh detik dalam nilai tanggal dan waktu. | 1 |
ff | Perseratus detik dalam nilai tanggal dan waktu. | 12 |
fff | Milidetik dalam nilai tanggal dan waktu. | 123 |
ffff | Seperseribu detik dalam nilai tanggal dan waktu. | 1234 |
fffff | Seratus seperseribu detik dalam nilai tanggal dan waktu. | 12345 |
ffffff | Sepersejuta detik dalam nilai tanggal dan waktu. | 123456 |
fffffff | Sepuluh juta detik dalam nilai tanggal dan waktu. | 1234567 |
F | Jika bukan nol, sepersepuluh detik dalam nilai tanggal dan waktu. | 1 |
FF | Jika bukan nol, seperseratus detik dalam nilai tanggal dan waktu. | 12 |
FFF | Jika bukan nol, milidetik dalam nilai tanggal dan waktu. | 123 |
FFFF | Jika bukan nol, seperseribu detik dalam nilai tanggal dan waktu. | 1234 |
FFFFF | Jika bukan nol, seperseribu detik dalam nilai tanggal dan waktu. | 12345 |
FFFFFF | Jika bukan nol, sepersejuta detik dalam nilai tanggal dan waktu. | 123456 |
FFFFFFF | Jika bukan nol, sepersejuta detik dalam nilai tanggal dan waktu. | 1234567 |
g | Masa atau era. | M. |
gg | Masa atau era. | M. |
h | Jam, menggunakan jam 12 jam dari 1 hingga 12. | 11 |
hh | Jam, menggunakan jam 12 jam dari 01 hingga 12. | 11 |
H | Jam, menggunakan waktu 24 jam dari 0 hingga 23. | 23 |
HH | Jam, menggunakan jam 24 jam dari 00 hingga 23. | 23 |
K | Informasi zona waktu. | +07:00 |
m | Menit, dari 0 hingga 59. | 9 |
mm | Menit, dari 00 hingga 59. | 09 |
M | Bulan, dari 1 sampai 12. | 5 |
MM | Bulan, dari 01 sampai 12. | 05 |
MMM | Nama bulan yang disingkat. | Mei |
MMMM | Nama lengkap bulan tersebut. | Mei |
s | Yang kedua, dari 0 sampai 59. | 8 |
ss | Yang kedua, dari 00 hingga 59. | 08 |
t | Karakter pertama penanda AM/PM. | P |
tt | Penanda AM/PM. | PM |
y | Tahun, dari 0 sampai 99. | 80 |
yy | Tahun, dari 00 hingga 99. | 80 |
yyy | Tahun, dengan minimal tiga digit. | 2080 |
yyyy | Tahun sebagai angka empat digit. | 2080 |
yyyyy | Tahun sebagai angka lima digit. | 02080 |
z | Jam diimbangi dari UTC, tanpa nol di depan. | +7 |
zz | Jam diimbangi dari UTC, dengan nol di depan untuk nilai satu digit. | +07 |
zzz | Jam dan menit diimbangi dari UTC. | +07:00 |
: | Pemisah waktu. | : |
/ | Pemisah tanggal. | / |
"string" | Pembatas string literal. | string |
% | Mendefinisikan karakter berikut sebagai penentu format khusus. | |
\ | Karakter pelarian. |
Setiap karakter lain disalin ke string hasil tidak berubah.
Penting: Saat menggunakan string format khusus karakter tunggal, Anda harus menambahkannya dengan tanda persentase (%
). Atau, Anda dapat menambahkan spasi. Jika Anda tidak melakukan ini, Anda akan mendapatkan NULL, atau penentu format dapat diartikan sebagai penentu format standar, dan Anda akan mendapatkan hasil yang tidak diinginkan.
Apa itu String Format Kustom?
String format kustom terdiri dari satu atau beberapa penentu format kustom. Tabel di atas mencantumkan penentu format khusus yang tersedia untuk memformat nilai tanggal dan waktu ke dalam string.
Ada juga string format tanggal dan waktu standar. Masing-masing adalah alias untuk string format khusus. String format standar terdiri dari penentu format tunggal, sehingga lebih cepat digunakan (tetapi kurang fleksibel dibandingkan string format khusus).
String format apa pun yang bukan string format tanggal dan waktu standar ditafsirkan sebagai string format tanggal dan waktu khusus.
Contoh Penggunaan
Cara kerja penentu format khusus, adalah Anda dapat menggabungkannya bersama untuk membentuk string format khusus saat menggunakan FORMAT()
fungsi. Ini menentukan bagaimana hasilnya diformat.
Berikut beberapa contohnya:
DECLARE @date datetimeoffset; SET @date = '2080-05-01 23:09:08.1234567 +07:00'; SELECT FORMAT(@date, 'd, MMM yy') AS 'd, MMM yy', FORMAT(@date, 'dd, MMMM yyyy') AS 'dd, MMMM yyyy', FORMAT(@date, 'dddd, MMM dd yyyy') AS 'dddd, MMM dd yyyy', FORMAT(@date, 'hh:mm:ss') AS 'hh:mm:ss', FORMAT(@date, 'hh:mm tt') AS 'hh:mm tt';
Hasil:
+-------------+-----------------+------------------------+------------+------------+ | d, MMM yy | dd, MMMM yyyy | dddd, MMM dd yyyy | hh:mm:ss | hh:mm tt | |-------------+-----------------+------------------------+------------+------------| | 1, May 80 | 01, May 2080 | Wednesday, May 01 2080 | 11:09:08 | 11:09 PM | +-------------+-----------------+------------------------+------------+------------+
Jadi ini memungkinkan banyak fleksibilitas dalam cara Anda menyajikan tanggal dan waktu Anda.
Berikut adalah contoh penggunaan string format yang terdiri dari penentu format tunggal.
DECLARE @date datetimeoffset; SET @date = '2080-05-01 23:09:08.1234567 +07:00'; SELECT FORMAT(@date, '%d') AS '%d', FORMAT(@date, '%M') AS '%M', FORMAT(@date, '%K') AS '%K', FORMAT(@date, '%z') AS '%z';
Hasil:
+------+------+--------+------+ | %d | %M | %K | %z | |------+------+--------+------| | 1 | 5 | +07:00 | +7 | +------+------+--------+------+
Seperti yang disebutkan, Anda harus menambahkan ini dengan tanda persentase untuk menghindari NULL dan agar penentu format tidak secara tidak sengaja ditafsirkan sebagai string format standar.
Inilah yang terjadi jika saya menghapus tanda persentase dari contoh sebelumnya:
DECLARE @date datetimeoffset; SET @date = '2080-05-01 23:09:08.1234567 +07:00'; SELECT FORMAT(@date, 'd') AS 'd', FORMAT(@date, 'M') AS 'M', FORMAT(@date, 'K') AS 'K', FORMAT(@date, 'z') AS 'z';
Hasil:
+----------+-------+------+------+ | d | M | K | z | |----------+-------+------+------| | 5/1/2080 | May 1 | NULL | NULL | +----------+-------+------+------+
Kami mendapatkan hasil yang sama sekali berbeda.