Sebagian besar RDBMS utama memiliki fungsi yang memungkinkan kita untuk mengekstrak hari, bulan, dan tahun dari nilai datetime.
Beberapa RDBMS menyediakan banyak cara untuk melakukan ini, dan yang lainnya lebih terbatas. Di bawah ini adalah contoh ekstraksi hari, bulan, dan tahun dari nilai tanggal di beberapa RDBMS paling populer.
MySQL
MySQL memiliki beberapa fungsi yang dapat digunakan untuk mengekstrak hari, bulan, dan tahun dari sebuah tanggal. Salah satunya adalah EXTRACT()
fungsi:
SELECT
EXTRACT(DAY FROM '2035-12-19') AS Day,
EXTRACT(MONTH FROM '2035-12-19') AS Month,
EXTRACT(YEAR FROM '2035-12-19') AS Year;
Hasil:
+------+-------+------+ | Day | Month | Year | +------+-------+------+ | 19 | 12 | 2035 | +------+-------+------+
Dalam hal ini, saya mengekstrak setiap bagian tanggal ke bidangnya sendiri.
Jika Anda ingin semua bagian tanggal dikembalikan dalam bidang yang sama, DATE_FORMAT()
fungsi dapat melakukan ini untuk Anda.
MySQL juga memiliki banyak fungsi yang mengembalikan bagian tanggal tertentu dari suatu tanggal, seperti DAY()
, MONTH()
, YEAR()
, dll.
Lihat Mengembalikan Hari, Bulan, dan Tahun di MySQL untuk contoh lainnya.
Oracle
Oracle memiliki TO_CHAR()
fungsi yang dapat digunakan untuk mengekstrak bagian tanggal di bidangnya sendiri, atau semua dalam satu bidang. Berikut ini contoh mengembalikannya di masing-masing bidang:
SELECT
TO_CHAR(DATE '2035-09-26', 'Day') AS Day,
TO_CHAR(DATE '2035-09-26', 'DD') AS DD,
TO_CHAR(DATE '2035-09-26', 'Month') AS Month,
TO_CHAR(DATE '2035-09-26', 'YYYY') AS Year
FROM DUAL;
Hasil:
DAY DD MONTH YEAR ____________ _____ ____________ _______ Wednesday 26 September 2035
Lihat Daftar Lengkap Elemen Format Datetime ini di Oracle untuk daftar elemen format yang dapat digunakan untuk memformat nilai datetime dengan fungsi ini.
Oracle juga memiliki EXTRACT()
fungsi yang bekerja seperti fungsi MySQL dengan nama yang sama.
SQL Server
SQL Server memiliki cukup banyak fungsi yang dapat mengembalikan bagian tanggal seperti hari, bulan, dan tahun.
DATEPART()
fungsi dirancang khusus untuk mengembalikan bagian tertentu dari tanggal:
DECLARE @date date = '2045-07-03';
SELECT
DATEPART(day, @date) AS DAY,
DATEPART(weekday, @date) AS WEEKDAY,
DATEPART(month, @date) AS MONTH,
DATEPART(year, @date) AS YEAR;
Hasil:
+-------+-----------+---------+--------+ | DAY | WEEKDAY | MONTH | YEAR | |-------+-----------+---------+--------| | 3 | 2 | 7 | 2045 | +-------+-----------+---------+--------+
Fungsi serupa adalah DATENAME()
, yang dapat mengembalikan nama hari dan bulan sebagai string.
SQL Server juga memiliki fungsi seperti DAY()
, MONTH()
, YEAR()
, dll yang mengembalikan bagian tanggal tertentu.
Dan jangan lupa FORMAT()
fungsi, yang sempurna jika Anda ingin mengembalikan semua bagian tanggal di bidang yang sama.
Lihat 6 Fungsi untuk Mendapatkan Hari, Bulan, dan Tahun dari Tanggal di SQL Server untuk contoh lebih lanjut.
PostgreSQL
PostgreSQL memiliki beberapa fungsi yang dapat mengembalikan bagian tanggal dari tanggal.
Berikut ini contoh DATE_PART()
fungsi:
SELECT
DATE_PART('DAY', date '2035-10-30') AS "Day",
DATE_PART('DOW', date '2035-10-30') AS "DOW",
DATE_PART('DOY', date '2035-10-30') AS "DOY",
DATE_PART('MONTH', date '2035-10-30') AS "Month",
DATE_PART('YEAR', date '2035-10-30') AS "Year";
Hasil:
Day | DOW | DOY | Month | Year -----+-----+-----+-------+------ 30 | 2 | 303 | 10 | 2035
PostgreSQL juga memiliki EXTRACT()
fungsi yang pada dasarnya melakukan hal yang sama, kecuali dengan sintaks yang sedikit berbeda.
Dan TO_CHAR()
fungsi dapat digunakan jika Anda ingin mengembalikan beberapa bagian tanggal di bidang yang sama.
SQLite
SQLite lebih terbatas dalam hal fungsi tanggal dan waktu. Namun, Anda masih dapat menggunakan STRFTIME()
fungsi untuk mengekstrak hari, bulan, dan tahun dari suatu tanggal:
SELECT STRFTIME('%d %m %Y', '2035-12-01');
Hasil:
01 12 2035
Dalam contoh ini, saya telah mengembalikan semua bagian tanggal di bidang yang sama. Tapi ini belum tentu diperlukan. Jika Anda ingin mereka dikembalikan di bidang yang berbeda, Anda dapat memanggil STRFTIME()
beberapa kali, masing-masing dengan elemen format yang berbeda:
SELECT
strftime('%d', '2035-12-01') AS "Day",
strftime('%m', '2035-12-01') AS "Month",
strftime('%Y', '2035-12-01') AS "Year";
Hasil:
Day Month Year --- ----- ---- 01 12 2035
MariaDB
MariaDB menyediakan banyak pilihan fungsi yang dapat mengembalikan hari, bulan, dan tahun dari nilai datetime.
Berikut ini contoh DATE_FORMAT()
fungsi:
SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');
Hasil:
+-------------------------------------------+ | DATE_FORMAT('2023-07-25', '%W, %D %M %Y') | +-------------------------------------------+ | Tuesday, 25th July 2023 | +-------------------------------------------+
Fungsi tersebut memungkinkan kami untuk mengembalikan semua bagian tanggal dalam satu bidang (walaupun ini tidak diperlukan – Anda dapat dengan mudah mengembalikan setiap bagian tanggal dalam bidang yang berbeda dengan memanggil DATE_FORMAT()
beberapa kali, setiap kali dengan format string yang berbeda).
Dan seperti yang lainnya, MariaDB juga memiliki EXTRACT()
fungsi yang mengekstrak bagian tanggal tertentu.
Dan ada juga berbagai macam fungsi khusus untuk setiap bagian tanggal, seperti DAY()
, MONTH()
, YEAR()
, dll
Lihat 11 Fungsi untuk Mendapatkan Hari, Bulan, dan Tahun dari Tanggal di MariaDB untuk ikhtisar lengkap.