MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Bagaimana SUBDATE() Bekerja di MariaDB

Di MariaDB, SUBDATE() adalah fungsi tanggal dan waktu bawaan yang mengurangi jumlah dari tanggal tertentu.

Ini memungkinkan Anda untuk mengubah tanggal dengan menentukan tanggal, unit yang akan dikurangi, dan jumlah yang akan dikurangi. Anda dapat memberikan jumlah negatif untuk menambah ke tanggal, alih-alih menguranginya.

SUBDATE() juga memiliki sintaks pintasan yang memungkinkan Anda menentukan hari untuk dikurangi.

Sintaks

SUBDATE() fungsi memiliki dua sintaks.

Sintaks 1

SUBDATE(expr,days) 

Dimana expr adalah tanggal, dan days adalah jumlah hari untuk dikurangi.

Sintaks 2:

SUBDATE(date,INTERVAL expr unit) 

Dimana date adalah tanggal untuk berubah, expr adalah jumlah yang akan dikurangi, dan unit adalah unit tanggal/waktu untuk dikurangi (misalnya detik, menit, dll).

Saat menggunakan sintaks ini, SUBDATE() adalah sinonim untuk DATE_SUB() .

Contoh – Sintaks 1

Berikut ini contoh penggunaan sintaks pertama:

SELECT SUBDATE('2021-05-01', 1); 

Hasil:

+--------------------------+| SUBDATE('2021-05-01', 1) |+--------------------------+| 30-04-2020 |+--------------------------+

Kami juga dapat menyertakan porsi waktu jika diperlukan:

SELECT SUBDATE('2021-05-01 10:00:00', 1); 

Hasil:

+-----------------------------------+| SUBDATE('2021-05-01 10:00:00', 1) |+------------------------------- ----+| 2021-04-30 10:00:00 |+-----------------------------------+ 

Berikut adalah dua cara alternatif untuk melakukan hal yang sama:

SELECT 
    DATE_SUB('2021-05-01 10:00:00', INTERVAL 1 DAY) AS "Result 1",
    '2021-05-01 10:00:00' - INTERVAL 1 DAY AS "Result 2"; 

Hasil:

+---------------------+---------------------+| Hasil 1 | Hasil 2 |+---------------------+---------------------+| 2021-04-30 10:00:00 | 2021-04-30 10:00:00 |+---------------------+---------------- -----+

Contoh – Sintaks 2

Berikut ini contoh penggunaan sintaks kedua:

SELECT SUBDATE('2021-05-31 10:00:00', INTERVAL 1 HOUR); 

Hasil:

+------------------------------------------------- ---+| SUBDATE('2021-05-31 10:00:00', INTERVAL 1 JAM) |+----------------------------- --------------------+| 2021-05-31 09:00:00 |+-------------------------------------- -----------+

Sintaks ini memungkinkan kita untuk mengurangi unit lain dari tanggal (yaitu bukan hanya hari). Di sini, saya mengurangi satu jam dari tanggal, tetapi saya dapat dengan mudah mengurangi menit, detik, bulan, hari, tahun, dll. Contohnya nanti.

Berikut adalah dua metode alternatif untuk mencapai hasil yang sama seperti contoh di atas:

SELECT 
    DATE_SUB('2021-05-31 10:00:00', INTERVAL 1 HOUR) AS "Result 1",
    '2021-05-31 10:00:00' - INTERVAL 1 HOUR AS "Result 2"; 

Hasil:

+---------------------+---------------------+| Hasil 1 | Hasil 2 |+---------------------+---------------------+| 2021-05-31 09:00:00 | 2021-05-31 09:00:00 |+---------------------+---------------- -----+

Interval Negatif

Memberikan interval negatif menambahkan jumlah itu hingga saat ini.

Contoh:

SELECT SUBDATE('2021-05-31 10:00:00', INTERVAL -1 HOUR); 

Hasil:

+------------------------------------------------- ----+| SUBDATE('2021-05-31 10:00:00', INTERVAL -1 JAM) |+---------------------------- -----------------------+| 2021-05-31 11:000:00 |+------------------------------------------------- ------------+

Unit Lain

Berikut adalah contoh yang mengurangi interval 1 dari berbagai unit tanggal dan waktu:

SELECT 
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 YEAR) AS YEAR,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 MONTH) AS MONTH,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 DAY) AS DAY,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 HOUR) AS HOUR,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 MINUTE) AS MINUTE,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 SECOND) AS SECOND,
    SUBDATE('2021-05-01 10:00:00', INTERVAL 1 MICROSECOND) AS MICROSECOND; 

Hasil (menggunakan keluaran vertikal):

 TAHUN:2020-05-01 10:00:00 BULAN:2021-04-01 10:00:00 HARI:2021-04-30 10:00:00 JAM:01-01 2021 09:00:00 MENIT:2021-05-01 09:59:00 KEDUA:05-01 2021 09:59:59MICROSECOND:05-01 2021 09:59:59.999999

Unit Komposit

Berikut ini contoh yang menggunakan unit komposit:

SELECT 
    SUBDATE('2021-05-01 10:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    SUBDATE('2021-05-01 10:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    SUBDATE('2021-05-01 10:00:00', INTERVAL '1:30' DAY_MINUTE) AS "DAY_MINUTE"; 

Hasil:

+---------------------+---------------------+-- -------------------+| YEAR_MONTH | HOUR_SECOND | DAY_MINUTE |+---------------------+---------------------+--- ------------------+| 2020-03-01 10:00:00 | 2021-05-01 08:34:25 | 2021-05-01 08:30:00 |+---------------------+---------------- -----+---------------------+

Tanggal Nol

Melewati null untuk tanggal kembali null :

SELECT SUBDATE(null, INTERVAL 1 YEAR); 

Hasil:

+--------------------------------+| SUBDATE(null, INTERVAL 1 TAHUN) |+--------------------------------+| NULL |+--------------------------------+

Argumen Tidak Ada

Memanggil SUBDATE() dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun menghasilkan kesalahan:

SELECT SUBDATE(); 

Hasil:

ERROR 1064 (42000):Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MariaDB Anda untuk sintaks yang tepat untuk digunakan di dekat ')' di baris 1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_ARRAYAGG() Dijelaskan

  2. Menyiapkan Cluster Database Geo-Distributed Menggunakan Replikasi MySQL

  3. 3 Cara Mendapatkan Nama Hari dari Tanggal di MariaDB

  4. Bagaimana SYS_GUID() Bekerja di MariaDB

  5. Memahami Indeks di MySQL:Bagian Satu