Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SUBTIME() Contoh – MySQL

Di MySQL, Anda dapat menggunakan SUBTIME() berfungsi untuk mengurangi nilai waktu dari ekspresi waktu atau datetime.

Cara kerjanya adalah, Anda memberikan dua argumen; yang pertama adalah nilai waktu atau datetime, dan yang kedua adalah nilai waktu. SUBTIME() function kemudian mengurangi argumen kedua dari argumen pertama dan mengembalikan hasilnya.

Sintaks

Sintaksnya seperti ini:

SUBTIME(expr1,expr2)

Dimana expr1 dapat berupa ekspresi waktu atau datetime, dan expr2 adalah ekspresi waktu.

Jadi expr2 dikurangi dari expr1 .

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

SELECT SUBTIME('12:35:00', '1:30');

Hasil:

+-----------------------------+
| SUBTIME('12:35:00', '1:30') |
+-----------------------------+
| 11:05:00                    |
+-----------------------------+

Contoh 2 – Pengurangan Detik

Dalam contoh ini, saya juga mengurangi beberapa detik dari nilai waktu.

SELECT SUBTIME('12:35:00', '1:30:30');

Hasil:

+--------------------------------+
| SUBTIME('12:35:00', '1:30:30') |
+--------------------------------+
| 11:04:30                       |
+--------------------------------+

Dan kita mendapatkan hasil yang sama bahkan jika kita menghilangkan bagian detik dari argumen waktu awal.

SELECT SUBTIME('12:35', '1:30:30');

Hasil:

+-----------------------------+
| SUBTIME('12:35', '1:30:30') |
+-----------------------------+
| 11:04:30                    |
+-----------------------------+

Contoh 3 – Detik Pecahan

Anda juga dapat mengurangi bagian pecahan detik.

SELECT SUBTIME('12:35:00.888888', '1:30:30.555555');

Hasil:

+----------------------------------------------+
| SUBTIME('12:35:00.888888', '1:30:30.555555') |
+----------------------------------------------+
| 11:04:30.333333                              |
+----------------------------------------------+

Contoh 4 – Hasil Negatif

Cukup valid untuk berakhir dengan nilai negatif untuk hasil Anda.

SELECT SUBTIME('12:35:00', '20:30:30');

Hasil:

+---------------------------------+
| SUBTIME('12:35:00', '20:30:30') |
+---------------------------------+
| -07:55:30                       |
+---------------------------------+

Contoh 5 – Kurangi dari Nilai Datetime

Dalam contoh ini saya mengurangi dari nilai datetime (sebagai lawan dari hanya nilai waktu seperti pada contoh sebelumnya).

SELECT SUBTIME('2021-01-01 12:35:00', '1:30:30');

Hasil:

+-------------------------------------------+
| SUBTIME('2021-01-01 12:35:00', '1:30:30') |
+-------------------------------------------+
| 2021-01-01 11:04:30                       |
+-------------------------------------------+

Dalam hal ini, bagian tanggal tidak berubah, karena argumen kedua tidak cukup besar untuk memengaruhinya.

Dalam contoh berikut ini, saya meningkatkan argumen kedua sehingga cukup besar untuk mempengaruhi bagian tanggal.

SELECT SUBTIME('2021-01-01 12:35:00', '100:30:30');

Hasil:

+---------------------------------------------+
| SUBTIME('2021-01-01 12:35:00', '100:30:30') |
+---------------------------------------------+
| 2020-12-28 08:04:30                         |
+---------------------------------------------+

Seperti yang terlihat dalam contoh ini, nilai waktu tidak dibatasi menjadi kurang dari 24 jam (dapat berkisar dari -838:59:59 ke 838:59:59 .

Namun, Anda juga dapat melakukan hal-hal seperti ini:

SELECT SUBTIME('2021-01-01 12:35:00', '4 4:30:30');

Hasil:

+---------------------------------------------+
| SUBTIME('2021-01-01 12:35:00', '4 4:30:30') |
+---------------------------------------------+
| 2020-12-28 08:04:30                         |
+---------------------------------------------+

Contoh 6 – Batasan Waktu Nilai

Seperti yang disebutkan, tipe data waktu dapat berkisar dari -838:59:59 ke 838:59:59 . Ini berarti Anda tidak dapat mengurangi lebih dari itu. Ini juga berarti bahwa hasilnya tidak boleh di luar kisaran ini. Misalnya, Anda tidak dapat melakukan ini:

SELECT SUBTIME('12:35:00', '20000000:30:30');

Hasil:

+---------------------------------------+
| SUBTIME('12:35:00', '20000000:30:30') |
+---------------------------------------+
| -826:24:59                            |
+---------------------------------------+
1 row in set, 1 warning (0.01 sec)

Hasilnya benar-benar salah dan MySQL menampilkan peringatan.

Tapi itu bukan hanya argumen kedua yang perlu Anda waspadai. Anda juga akan mengalami masalah yang sama jika argumen pertama awalnya bernilai negatif:

SELECT SUBTIME('-800:35:00', '50:30:30');

Hasil:

+-----------------------------------+
| SUBTIME('-800:35:00', '50:30:30') |
+-----------------------------------+
| -838:59:59                        |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat instalasi MySQL untuk pengujian lokal

  2. MySQL 8.0 - Klien tidak mendukung protokol otentikasi yang diminta oleh server; pertimbangkan untuk memutakhirkan klien MySQL

  3. cara memeriksa dan mengatur variabel mysql max_allowed_packet

  4. Bagaimana cara mengaktifkan koneksi ulang otomatis klien MySQL dengan MySQLdb?

  5. MyCLI – Klien MySQL/MariaDB dengan Pelengkapan Otomatis dan Penyorotan Sintaks