Saat menjalankan kueri di MySQL, Anda dapat menggunakan DAYOFYEAR()
berfungsi untuk mengembalikan hari dalam setahun dari tanggal.
Fungsi ini menerima satu argumen, dan mengembalikan nilai antara 1 dan 366 , tergantung pada hari dalam setahun yang diwakili oleh bagian hari dari argumen.
Sintaks
Sintaksnya seperti ini:
DAYOFYEAR(date)
Dimana date
adalah nilai tanggal yang Anda inginkan untuk mengembalikan hari dalam setahun.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SELECT DAYOFYEAR('2019-01-01') AS 'Date 1', DAYOFYEAR('2019-12-31') AS 'Date 2';
Hasil:
+--------+--------+ | Date 1 | Date 2 | +--------+--------+ | 1 | 365 | +--------+--------+
Dalam contoh ini, untuk mendemonstrasikan efek yang tepat, saya menjalankan fungsi ini dua kali pada dua tanggal yang berbeda – satu pada awal tahun, dan lainnya pada akhir tahun.
DAYOFYEAR() vs DAYOFMONTH()
Berikut adalah contoh untuk menunjukkan perbedaan antara DAYOFYEAR()
dan DAYOFMONTH()
fungsi.
SET @date = '2019-10-03'; SELECT @date, DAYOFMONTH(@date) AS 'Day of Month', DAYOFYEAR(@date) AS 'Day of Year';
Hasil:
+------------+--------------+-------------+ | @date | Day of Month | Day of Year | +------------+--------------+-------------+ | 2019-10-03 | 3 | 276 | +------------+--------------+-------------+
DAYOFMONTH()
fungsi mengembalikan nilai antara 1 dan 31 (atau 0 untuk tanggal dengan bagian hari nol) yang mewakili hari dalam sebulan. Ini me-reset kembali ke 1 di awal setiap bulan.
DAYOFYEAR()
fungsi di sisi lain, mengembalikan nilai antara 1 dan 366 . Ini me-reset kembali ke 1 di awal setiap tahun.
Contoh Basis Data
Berikut ini contoh penggunaan DAYOFYEAR()
saat menanyakan database:
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFYEAR(payment_date) AS 'Day of Year' FROM payment WHERE payment_id = 1;
Hasil:
+---------------------+-------------+ | Date/Time | Day of Year | +---------------------+-------------+ | 2005-05-25 11:30:37 | 145 | +---------------------+-------------+
Tanggal/Waktu Saat Ini
Berikut adalah contoh mengekstrak bagian hari dari tanggal dan waktu saat ini (yang dikembalikan menggunakan NOW()
fungsi).
SELECT NOW(), DAYOFYEAR(NOW());
Hasil:
+---------------------+------------------+ | NOW() | DAYOFYEAR(NOW()) | +---------------------+------------------+ | 2018-06-26 08:23:04 | 177 | +---------------------+------------------+
Cara lain untuk melakukannya adalah dengan menggunakan CURDATE()
fungsi, yang hanya mengembalikan tanggal (tetapi bukan waktu).
SELECT CURDATE(), DAYOFYEAR(CURDATE());
Hasil:
+------------+----------------------+ | CURDATE() | DAYOFYEAR(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 177 | +------------+----------------------+