GNU/Linux >> Belajar Linux >  >> Cent OS

Panduan Fungsi Tanggal MySQL dengan Contoh

Pendahuluan

MySQL hadir dengan banyak fungsi bawaan yang memungkinkan Anda untuk memanipulasi data. Fungsi-fungsi ini dikelompokkan ke dalam kategori – fungsi tanggal, fungsi string, fungsi matematika, dan lainnya.

Fungsi tanggal memberi Anda banyak pilihan tentang cara memodifikasi, menghitung, dan mengonversi ekspresi tanggal, waktu, dan waktu di MySQL.

Dalam tutorial ini, Anda akan belajar tentang fungsi tanggal dan waktu MySQL dan cara kerjanya, pada contoh praktis.

Fungsi Terkait Tanggal

TANGGAL TANGGAL ATAU TANGGAL_JALAN

Kembalikan tanggal saat ini dalam format “YYY-MM-DD” atau “YYYYMMDD” dengan CURDATE ATAU CURRENT_DATE perintah.

Sintaks dasar:

CURDATE();

Misalnya, jika Anda menjalankan:

SELECT CURDATE();

MySQL merespons dengan tanggal saat ini dalam format:

2021-01-17

TANGGAL

Kembalikan tanggal dari ekspresi datetime menggunakan DATE perintah.

Sintaks dasar:

DATE(datetime);

Misalnya, jika Anda menjalankan:

SELECT DATE('2021-01-17 10:12:16');

Outputnya adalah:

2021-01-17

DATE_ADD atau ADDDATE

Tambahkan nilai waktu/tanggal ke ekspresi tanggal dengan DATE_ADD atau ADDDATE fungsi.

Sintaks dasar:

DATE_ADD(date, INTERVAL value unit);

Ganti tanggal dengan ekspresi tanggal yang ingin Anda tambahkan waktu/tanggal. Satuan nilai adalah waktu/tanggal yang ingin Anda tambahkan. Itu perlu dinyatakan dalam nilai numerik bersama dengan satuan nilainya.

Satuan bisa:

  • DUA
  • MENIT
  • JAM
  • HARI
  • MINGGU
  • BULAN
  • PEREMPAT
  • TAHUN
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • HARI_DETIK
  • DAY_MINUTE
  • HARI_JAM
  • YEAR_MONTH

Misalnya, jika Anda menjalankan:

SELECT DATE_ADD('2021-01-17 07:14:21', INTERVAL 20 MINUTE);

Output mengembalikan hasil:

2021-01-17 07:34:21

FORMAT_TANGGAL

Format tanggal menggunakan DATE_FORMAT .

Sintaks dasar:

DATE_FORMAT(date, format);

Tanggal adalah ekspresi tanggal yang ingin Anda format ulang, sedangkan format adalah kombinasi dari penentu berikut:

Misalnya, jika Anda menjalankan:

SELECT DATE_FORMAT('2021-01-17', '%W %M %Y');

Output menampilkan hasil:

Sunday January 2021

DATE_SUB atau SUBDATE

Kurangi nilai waktu/tanggal ke ekspresi tanggal dengan DATE_SUB atau SUBDATE fungsi.

Sintaks dasar:

DATE_SUB(date, INTERVAL value unit);

Ganti tanggal dengan ekspresi tanggal yang ingin Anda kurangi. Satuan nilai adalah waktu/tanggal yang ingin Anda kurangi. Itu perlu dinyatakan dalam nilai numerik bersama dengan satuan nilainya.

Temukan daftar jenis unit di bagian DATE_ADD.

Misalnya, jika Anda menjalankan:

SELECT DATE_SUB('2021-01-17 07:14:21', INTERVAL 1 HOUR);

Output mengembalikan hasil:

2021-01-17 06:14:21

DATEDIFF

Kembalikan jumlah hari antara dua ekspresi tanggal dengan DATEDIFF fungsi.

Sintaks dasar:

DATEDIFF(date1,date2);

Misalnya:

SELECT DATEDIFF('2021-01-23','2021-01-14');

Mengembalikan hasil:

9

EKSTRAK

Untuk mengekstrak bagian dari ekspresi tanggal/waktu, gunakan EXTRACT fungsi.

Sintaks dasar:

EXTRACT(unit FROM date);

Dalam perintah, Anda perlu menentukan unit . mana Anda ingin mengekstrak dari tanggal specified yang ditentukan .

Temukan daftar unit yang dapat Anda gunakan dalam deskripsi DATE_ADD.

Misalnya, saat Anda menjalankan:

SELECT EXTRACT(DAY FROM '2021-01-26');

Anda mendapatkan hasilnya:

26

GET_FORMAT

Kembalikan string format (kombinasi penentu) seperti yang ditentukan dalam argumen dengan GET_FORMAT . Fungsi ini sering digunakan dengan DATE_FORMAT .

Sintaks dasar:

GET_FORMAT(DATE/TIME/DATETIME,format)

Gunakan fungsi ini dengan ekspresi tanggal, waktu, dan waktu.

Format bisa:

  • ‘EUR’
  • 'AS'
  • 'JIS'
  • 'ISO'
  • 'INTERNAL'

Ada sejumlah hasil terbatas yang bisa Anda dapatkan dengan menggunakan GET_FORMAT fungsi. Di bawah ini Anda akan menemukan daftar semua panggilan fungsi dan hasilnya.

Misalnya, Anda dapat menggabungkan fungsi dengan DATE_FORMAT , seperti pada contoh berikut:

SELECT DATE_FORMAT('2021-01-26', GET_FORMAT(DATE,'EUR'));

Dimana hasilnya adalah:

26.01.2021

DIBUAT

Kembalikan ekspresi tanggal dari tahun dan hari tertentu dalam setahun menggunakan MAKEDATE fungsi.

Sintaks dasar:

MAKEDATE(year,day);

Misalnya, jika Anda menjalankan:

SELECT MAKEDATE(2021,34);

Output menunjukkan hasilnya:

2021-02-03

STR_TO_DATE

Format tanggal dari string dengan STR_TO_DATE dan mengembalikan nilai tanggal/waktu.

Sintaks dasar:

STR_TO_DATE(string, format);

string adalah yang ingin Anda format ulang, sedangkan format adalah kombinasi penentu yang menjelaskan setiap elemen string .

Anda dapat menemukan daftar penentu dan artinya di bagian DATE_FORMAT.

Misalnya, jika Anda menjalankan:

SELECT STR_TO_DATE('January,25,2021', '%M %e %Y');

Outputnya menunjukkan:

2021-01-25

SYSDATE

Untuk mengembalikan tanggal dan waktu saat ini dalam format “YYYY-MM-DD jj:mm:dd” atau “YYYYMMDDHHMMSS.uuuuuu”, gunakan SYSDATE fungsi.

Sintaks dasar:

SYSDATE();

Anda dapat menambahkan fsp argumen untuk memasukkan presisi kedua pecahan (0-6). Dalam hal ini, sintaksnya adalah SYSDATE(fsp); .

Perintah yang ditunjukkan di bawah ini:

SELECT SYSDATE();

Saat ini berikan hasilnya:

2021-01-25 20:21:04

UTC_DATE

Kembalikan nilai tanggal Waktu Universal Terkoordinasi (UTC) saat ini dalam format “YYYY-MM-DD” atau “YYYYMMDD” dengan UTC_DATE fungsi.

Sintaks dasar:

UTC_DATE();

Misalnya, menjalankan perintah berikut:

SELECT UTC_DATE();

Mengembalikan tanggal saat ini yaitu:

2021-01-25

Fungsi Terkait Waktu

TAMBAH WAKTU

Tambahkan interval waktu ke ekspresi waktu/tanggal-waktu tertentu menggunakan ADDTIME .

Sintaks dasar:

ADDTIME(datetime, timevalue)

Misalnya, jika Anda menjalankan:

SELECT ADDTIME('2021-01-25 08:13:11.000021', '3:14:32.000006');

Anda mendapatkan hasilnya:

2021-01-25 11:27:43.000027

CONVERT_TZ

Ubah ekspresi waktu/tanggalwaktu dari satu zona waktu ke zona waktu lainnya menggunakan ADDTIME fungsi.

Sintaks dasar:

CONVERT_TZ(datetime, from_timezone,to_timezone)

Misalnya, saat Anda menjalankan:

SELECT CONVERT_TZ('2021-01-25 10:12:00','+00:00','+10:00');

MySQL mengonversi waktu tanggal yang ditentukan menjadi +10:00 zona waktu:

2021-01-25 20:12:00

CURTIME atau CURRENT_TIME

Kembalikan waktu saat ini menggunakan CURTIME atau CURRENT_TIME fungsi. Hasilnya mengembalikan waktu dalam format “hh:mm:ss” atau “hhmmss”.

Sintaks dasar:

CURTIME();

Anda dapat menyertakan presisi pecahan detik (dari 0 hingga 6) dengan menambahkan fsp argumen.

Misalnya, perintah berikut menunjukkan waktu saat ini dengan presisi tiga fraksi detik:

CURTIME(3);

Output merespons dengan hasil:

15:19:07.340

JAM

Kembalikan jam dari waktu/tanggal yang ditentukan dengan HOUR fungsi.

Sintaks dasar:

HOUR(datetime);

Misalnya, jika Anda menjalankan:

SELECT HOUR('08:40:07');

Hasilnya adalah:

8

TETAP WAKTU

Mengembalikan ekspresi waktu dari nilai jam, menit, dan detik yang ditentukan menggunakan MAKETIME fungsi.

Sintaks dasar:

MAKETIME(hour, minute, second);

Misalnya, Anda dapat menjalankan:

SELECT MAKETIME(09,25,00);

Di mana output ditampilkan:

09:25:00

MICROSECOND

Kembalikan mikrodetik dari ekspresi waktu/tanggal-waktu yang ditentukan dengan MICROSECOND .

Sintaks dasar:

MICROSECOND(datetime);

Misalnya, Anda dapat menjalankan:

SELECT MICROSECOND('2021-01-21 10:23:44.000040');

Dimana hasilnya adalah:

40

MENIT

Kembalikan menit dari ekspresi waktu/datetime yang ditentukan menggunakan MINUTE fungsi.

Sintaks dasar:

MINUTE(datetime);

Misalnya, jika Anda menjalankan perintah:

SELECT MINUTE('10:23:44');

Hasilnya adalah:

23

SEC_TO_TIME

Kembalikan nilai waktu dari nilai detik yang ditentukan dengan SEC_TO_TIME fungsi.

Sintaks dasar:

SEC_TO_TIME(seconds);

Misalnya, jika Anda menjalankan perintah:

SELECT SEC_TO_TIME(8897);

Outputnya adalah:

02:28:17

SUBTIME

Kurangi nilai waktu dari ekspresi waktu/tanggalwaktu menggunakan SUBTIME fungsi.

Sintaks dasar:

SUBTIME(datetime,timevalue);

Misalnya, saat Anda menjalankan:

SELECT SUBTIME('2021-01-21 21:24:00','2:20:1');

Outputnya adalah:

2021-01-21 19:03:59

WAKTU

Untuk mengembalikan nilai waktu dari ekspresi datetime, gunakan TIME fungsi.

Sintaks dasar:

TIME(datetime);

Misalnya:

SELECT TIME('2021-01-22 13:38:10');

Memberikan hasil:

13:38:10

TIME_FORMAT

Format nilai waktu ke dalam format yang ditentukan dengan TIME_FORMAT .

Sintaks dasar:

TIME_FORMAT(time,format);

Format adalah kombinasi dari specifier. Anda dapat menemukan daftar semua penentu dan artinya dalam deskripsi fungsi DATE_FORMAT.

Misalnya, dengan menjalankan:

SELECT TIME_FORMAT('13:45:10','%h %i %s %p');

Anda mendapatkan output:

01 45 10 PM

TIME_TO_SEC

Untuk mengembalikan nilai waktu yang diubah menjadi detik, gunakan TIME_TO_SEC .

Sintaks dasar:

TIME_TO_SEC(timevalue);

Misalnya, saat Anda menjalankan:

SELECT TIME_TO_SEC('13:48:05');

Hasilnya adalah:

49685

TIMEDIFF

Hitung perbedaan antara dua ekspresi waktu/datetime dengan TIMEDIFF fungsi. Dalam hal ini, hasilnya selalu dalam nilai waktu.

Sintaks dasar:

TIMEDIFF(datetime1,datetime2);

Misalnya, saat Anda menjalankan:

SELECT TIMEDIFF('2021-01-15 11:10:17','2021-01-05 11:10:16');

Outputnya kembali:

240:00:01

TO_SECONDS

Untuk mengonversi ekspresi tanggal/waktu menjadi detik, gunakan fungsi TO_SECONDS . Hasilnya adalah jumlah detik antara 0 dan tanggal/waktu yang ditentukan.

Sintaks dasar:

TO_SECONDS(datetime);

Misalnya, jika Anda menjalankan perintah:

SELECT TO_SECONDS('2021-01-21 08:10:17');

Hasilnya adalah:

63778435817

UTC_TIME

Kembalikan nilai waktu UTC saat ini dengan UTC_TIME . Ini mengembalikan nilai waktu dalam format “HH:MM:SS” atau “HHMMSS”.

Sintaks dasar:

UTC_TIME();

Misalnya, jika Anda menjalankan:

SELECT UTC_TIME();

Anda mendapatkan hasil saat ini adalah:

19:45:21

Fungsi Terkait Stempel Waktu

CURRENT_TIMESTAMP atau LOCALTIMESTAMP

Untuk mengembalikan tanggal dan waktu saat ini, gunakan CURRENT_TIMESTAMP atau LOCALTIMESTAMP . Hasilnya ditampilkan dalam format “YYYY-MM-DD HH-MM-SS” atau “YYYYMMDDHHMMSS.uuuuuu”.

Sintaks dasar:

CURRENT_TIMESTAMP();

Misalnya, dengan menjalankan:

SELECT CURRENT_TIMESTAMP();

Hasil saat ini adalah:

2021-01-25 19:53:55

FROM_UNIXTIME

Mengembalikan ekspresi tanggal/waktu dari stempel waktu dalam format Unix dengan FROM_UNIXTIME .

Sintaks dasar:

FROM_UNIXTIME(unix_timestamp);

Jika Anda menjalankan perintah tanpa argumen yang menentukan format, perintah tersebut akan mengembalikan hasilnya dalam format “YYYY-MM-DD jj:mm:ss” atau “YYYYMMDDhhmmss”.

Misalnya, jika Anda menjalankan:

SELECT FROM_UNIXTIME(1611231404);

Anda mendapatkan hasilnya:

2021-01-21 12:16:44

TIMESTAMP

Untuk mengembalikan ekspresi datetime dari tanggal atau nilai datetime, gunakan fungsi TIMESTAMP . Jika Anda menambahkan dua argumen, output akan mengembalikan jumlah argumen.

Sintaks dasar:

TIMESTAMP(datetime);
TIMESTAMP(datetime,time);

Misalnya, ketika Anda menjalankan perintah:

SELECT TIMESTAMP('2021-01-13','30:50:00');

Output menunjukkan hasilnya:

2021-01-14 06:50:00

TIMESTAMPADD

Tambahkan nilai waktu ke ekspresi tanggal/datetime menggunakan TIMESTAMPADD fungsi.

Sintaks dasar:

TIMESTAMPADD(unit,value,datetime);

Satuan bisa:

  • FRAC_SECOND
  • DUA
  • MENIT
  • JAM
  • HARI
  • MINGGU
  • BULAN
  • PEREMPAT
  • TAHUN

Misalnya, perintah berikut menambahkan 3 hari ke tanggal yang ditentukan:

SELECT TIMESTAMPADD(DAY,3,'2021-01-18');

Oleh karena itu, output menunjukkan:

2021-01-21

TIMESTAMPDIFF

Untuk menghitung perbedaan antara dua ekspresi tanggal/waktu, gunakan TIMESTAMPDIFF . Fungsi tersebut mengurangi satu nilai datetime dari yang lain dalam unit yang ditentukan.

Sintaks dasar:

TIMESTAMPDIFF(unit,datetime1,datetime2);

Anda dapat menemukan daftar dengan berbagai jenis unit, lihat daftar di bagian atas.

Misalnya, Anda dapat menghitung selisih antara dua tanggal berikut dalam hari:

SELECT TIMESTAMPDIFF(DAY,3,'2021-01-18');

Dimana hasilnya adalah:

13

UNIX_TIMESTAMP

Kembalikan stempel waktu Unix dari ekspresi tanggal/waktu dengan UNIX_TIMESTAMP fungsi. Stempel waktu Unix mewakili detik antara waktu tanggal yang ditentukan dan “1970-01-01 00:00:00” UTC.

Sintaks dasar:

UNIX_TIMESTAMP(datetime);

Misalnya, menjalankan perintah berikut:

SELECT UNIX_TIMESTAMP('2021-01-25 17:33:00');

Memberikan hasil:

1611595980

UTC_TIMESTAMP

Kembalikan nilai tanggal dan waktu UTC saat ini dengan UTC_TIMESTAMP . Ini mengembalikan nilai datetime dalam format “YYYY-MM-DD HH:MM:SS” atau “YYYYMMDDHHMMSS.uuuuuu”.

Sintaks dasar:

UTC_TIMESTAMP(datetime);

Misalnya, perintah:

SELECT UTC_TIMESTAMP();

Mengembalikan output dalam format yang sama seperti di bawah ini:

2021-01-25 23:18:06

Fungsi Terkait Hari/Minggu/Bulan/Tahun

HARI

Mengembalikan hari dalam sebulan dari ekspresi tanggal/tanggal-waktu tertentu dengan DAY fungsi.

Sintaks dasar:

DAY(datetime);

Jika Anda menjalankan perintah di bawah ini:

SELECT DAY('2021-01-26 12:32:00');

Output mengembalikan hasil:

26

DAYNAME

Kembalikan nama hari kerja dari ekspresi tanggal/tanggal yang ditentukan menggunakan DAYNAME fungsi.

Sintaks dasar:

DAYNAME(datetime);

Misalnya, ketika Anda menjalankan perintah:

SELECT DAYNAME('2021-01-26 12:32:00');

MySQL merespons dengan hasil:

Tuesday

DAYOFMONTH

Menampilkan hari dalam sebulan dari ekspresi tanggal/tanggal-waktu tertentu dengan DAYOFMONTH .

Sintaks dasar:

DAYOFMONTH(datetime);

Misalnya, ketika Anda menjalankan perintah:

SELECT DAYOFMONTH('2021-01-26 12:32:00');

MySQL merespons dengan hasil:

26

DAYOFWEEK

Kembalikan hari dalam nilai numerik dari ekspresi tanggal/waktu yang ditentukan menggunakan DAYOFWEEK .

Sintaks dasar:

DAYOFWEEK(datetime);

Jalankan perintah di bawah ini:

SELECT DAYOFWEEK('2021-01-26 12:32:00');

Memberikan tanggapan:

3

DAYOFYEAR

Mengembalikan hari dalam satu tahun dari ekspresi tanggal/waktu yang ditentukan menggunakan fungsi DAYOFYEAR .

Sintaks dasar:

DAYOFYEAR(datetime);

Misalnya, ketika Anda menjalankan perintah:

SELECT DAYOFYEAR('2021-02-26 12:32:00');

Outputnya memberikan hasil:

57

FROM_DAYS

Mengembalikan ekspresi tanggal dari representasi numerik hari menggunakan fungsi FROM_DAYS .

Sintaks dasar:

FROM_DAYS(number);

Misalnya, menjalankan:

SELECT FROM_DAYS(738181);

Prompt MySQL merespons dengan hasil:

2021-01-26

HARI_TERAKHIR

Kembalikan hari terakhir bulan itu dari tanggal/waktu yang ditentukan dengan LAST_DAY fungsi.

Sintaks dasar:

LAST_DAY(date);

Misalnya, jika Anda menjalankan perintah berikut:

SELECT LAST_DAY('2021-01-26');

Outputnya merespons dengan:

31

BULAN

Menampilkan bulan (dalam nilai numerik) dari tanggal/waktu yang ditentukan dengan menggunakan MONTH fungsi.

Sintaks dasar:

MONTH(date);

Misalnya, saat Anda menjalankan:

SELECT MONTH('2021-01-26');

MySQL merespons dengan:

1

MONTHNAME

Kembalikan nama bulan dari tanggal/waktu tertentu dengan MONTHNAME fungsi.

Sintaks dasar:

MONTHNAME(date);

Jika Anda menjalankan perintah:

SELECT MONTH('2021-01-26');

Anda mendapatkan respons berikut:

January

PERIOD_ADD

Untuk menambahkan jumlah bulan tertentu ke suatu periode, gunakan PERIOD_ADD fungsi.

Sintaks dasar:

PERIOD_ADD(period,number);

Periode didefinisikan dalam format YYMM atau YYYYMM, sedangkan angka adalah jumlah bulan yang ingin Anda tambahkan.

Misalnya:

SELECT PERIOD_ADD(202101, 5);

Memberikan hasil:

202106

PERIOD_DIFF

Menampilkan jumlah bulan antara dua periode dengan PERIOD_DIFF .

Sintaks dasar:

PERIOD_DIFF(period1,period2);

Setiap periode harus dalam format YYMM atau YYYYMM.

Misalnya:

SELECT PERIOD_DIFF(202101, 202003);

Menghasilkan hasil:

10

PEREMPAT

Untuk mengembalikan seperempat tahun dari tanggal/waktu tertentu, gunakan fungsi QUARTER .

Sintaks dasar:

QUARTER(date);

Misalnya dengan menjalankan perintah:

SELECT QUARTER('2021-01-26');

Outputnya merespons dengan:

1

TO_DAYS

Ubah ekspresi tanggal/waktu menjadi representasi numerik hari dengan TO_DAYS .

Sintaks dasar:

TO_DAYS(datetime);

Misalnya, untuk perintah:

SELECT TO_DAYS('2021-01-26');

Hasilnya adalah :

738181

MINGGU

Untuk mengembalikan nomor minggu dari tanggal yang ditentukan, gunakan fungsi WEEK .

Sintaks dasar:

WEEK(date);

Anda juga dapat menyertakan mode argumen, dalam hal ini sintaksnya adalah WEEK(date,mode); .

Argumen mode menentukan dari hari mana minggu itu dimulai. Jika tidak ada argumen, gunakan 0 mode secara default.

Tabel berikut menjelaskan setiap mode:

Misalnya, jika Anda menjalankan:

SELECT WEEK('2021-01-26');

Outputnya merespons dengan:

4

HARI WEEK

Kembalikan hari kerja dari tanggal yang ditentukan dalam nilai numerik dengan WEEKDAY . Setiap nomor mewakili salah satu hari kerja – Senin adalah 0 , Selasa adalah 1 , dan seterusnya.

Sintaks dasar:

WEEKDAY(date);

Misalnya, menjalankan perintah berikut:

SELECT WEEKDAY('2021-01-26');

Memberikan tanggapan:

1

WEEKOFYEAR

Untuk mengembalikan jumlah minggu dalam setahun, gunakan WEEKDAY fungsi.

Sintaks dasar:

WEEKOFYEAR(date);

Misalnya, ketika Anda menjalankan perintah:

SELECT WEEKOFYEAR('2021-01-26');

Output menunjukkan hasilnya:

3

TAHUN

Kembalikan tahun dari tanggal yang ditentukan dengan YEAR fungsi.

Sintaks dasar:

YEAR(date);

Jika Anda menjalankan perintah berikut:

SELECT YEAR('2021-01-26');

Anda mendapatkan hasilnya:

2021

MINGGU TAHUN

Kembalikan nomor tahun dan minggu dari tanggal yang ditentukan menggunakan YEARWEEK fungsi.

Sintaks dasar:

YEARWEEK(date);

Anda dapat menambahkan mode argumen ke sintaks dasar untuk menentukan hari dari mana minggu dimulai. Untuk melihat daftar mode dan artinya, lihat tabel di WEEK fungsi.

Misalnya, ketika Anda menjalankan perintah:

SELECT YEARWEEK('2021-01-26');

Outputnya menampilkan:

202104

Cent OS
  1. Perintah Nohup dengan Contoh

  2. Perintah JQ di Linux dengan Contoh

  3. Panduan Pemula FTP dan SFTP dengan 10 Contoh

  1. Jenis Data Redis dengan Perintah:Panduan Komprehensif

  2. Perintah wc Linux dengan Contoh

  3. Cara Membuat atau Menambahkan Indeks di MySQL Dengan Contoh

  1. Perintah ip Linux dengan Contoh

  2. Perintah Netcat (nc) dengan Contoh

  3. Panduan Docker:Menyebarkan Blog Hantu dengan MySQL dan Traefik dengan Docker