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

TIMEDIFF() vs SUBTIME() di MySQL:Apa Bedanya?

Anda mungkin telah memperhatikan bahwa MySQL memiliki TIMEDIFF() fungsi dan SUBTIME() fungsi. Dan Anda mungkin telah memperhatikan bahwa dalam banyak kasus, keduanya memberikan hasil yang sama. Jadi, Anda mungkin bertanya-tanya apa perbedaan antara kedua fungsi ini?

Mari kita cari tahu.

Sintaks

Pertama mari kita lihat sintaks dari setiap fungsi.

SUBTIME()

SUBTIME(expr1,expr2)

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

TIMEDIFF()

TIMEDIFF(expr1,expr2)

Dimana expr1 dan expr2 adalah ekspresi waktu atau tanggal-dan-waktu, tetapi keduanya harus bertipe sama.

Perbedaan

Jadi inilah perbedaannya:

  • Saat menggunakan SUBTIME() , argumen kedua harus berupa ekspresi waktu .
  • Saat menggunakan TIMEDIFF() argumen kedua dapat berupa ekspresi waktu atau tanggal-dan-waktu, tetapi dalam kedua kasus, itu harus bertipe sama dengan ekspresi pertama .

Contoh 1 – Kedua Argumen adalah Nilai 'waktu'

Berikut perbandingan kedua fungsi, di mana kedua argumen adalah nilai waktu.

SELECT 
    TIMEDIFF('11:35:25', '10:35:25') AS 'TIMEDIFF',
    SUBTIME('11:35:25', '10:35:25') AS 'SUBTIME';

Hasil:

+----------+----------+
| TIMEDIFF | SUBTIME  |
+----------+----------+
| 01:00:00 | 01:00:00 |
+----------+----------+

Seperti yang diharapkan, kedua fungsi mengembalikan hasil yang sama.

Contoh 2 – Kedua Argumen adalah Nilai 'datetime'

Berikut perbandingan kedua fungsi, di mana kedua argumen adalah nilai datetime.

SELECT 
    TIMEDIFF('2021-02-01 10:35:25', '2021-01-01 10:35:25') AS 'TIMEDIFF',
    SUBTIME('2021-02-01 10:35:25', '2021-01-01 10:35:25') AS 'SUBTIME';

Hasil:

+-----------+---------+
| TIMEDIFF  | SUBTIME |
+-----------+---------+
| 744:00:00 | NULL    |
+-----------+---------+

Dalam hal ini, SUBTIME() mengembalikan nilai null karena argumen kedua bukan nilai waktu (itu adalah nilai waktu-tanggal).

Contoh 3 – Argumen Pertama adalah 'datetime', Kedua adalah 'time'

Di sini, argumen pertama adalah nilai datetime. Argumen kedua adalah nilai waktu.

SELECT 
    TIMEDIFF('2021-02-01 10:35:25', '09:35:25') AS 'TIMEDIFF',
    SUBTIME('2021-02-01 10:35:25', '09:35:25') AS 'SUBTIME';

Hasil:

+----------+---------------------+
| TIMEDIFF | SUBTIME             |
+----------+---------------------+
| NULL     | 2021-02-01 01:00:00 |
+----------+---------------------+

Dalam hal ini, TIMEDIFF() mengembalikan nilai null karena kedua argumen memiliki tipe yang berbeda.

Contoh 4 – Argumen pertama adalah 'waktu', Kedua adalah 'datetime'

Dan di sini, kami menukarnya. Argumen pertama adalah nilai waktu. Argumen kedua adalah nilai datetime.

SELECT 
    TIMEDIFF('09:35:25', '2021-01-01 10:35:25') AS 'TIMEDIFF',
    SUBTIME('09:35:25', '2021-01-01 10:35:25') AS 'SUBTIME';

Hasil:

+----------+---------+
| TIMEDIFF | SUBTIME |
+----------+---------+
| NULL     | NULL    |
+----------+---------+

Dalam hal ini:

  • TIMEDIFF() mengembalikan nilai null karena kedua argumen memiliki tipe yang berbeda.
    SUBTIME() mengembalikan nilai null karena hanya menerima nilai waktu untuk argumen kedua.

  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 Mengaktifkan Cache Permintaan MySQL

  2. Kembalikan catatan ke-n dari kueri MySQL

  3. Bagaimana memastikan database MySQL Anda aman

  4. Tutorial SQL Kunci Utama – Cara Mendefinisikan Kunci Utama dalam Basis Data

  5. akses ditolak untuk pengguna @ 'localhost' ke database ''