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

Cara Mendapatkan Waktu Dari String di MySQL

Masalah:

Anda ingin mengekstrak waktu dari nilai string di MySQL.

Contoh:

Anda memiliki nilai string yang terlihat seperti ini:

‘Wednesday, 10 February 2021, 12:30:20’

Anda hanya ingin mengekstrak bagian waktu, '12:30:20'.

Solusi:

Berikut pertanyaannya:

SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");

Diskusi:

Untuk mengilustrasikan prosesnya dengan lebih jelas, kami akan menjelaskannya dalam dua bagian.

Pertama, kita harus mengonversi string menjadi nilai tanggal. Untuk melakukan ini, kami menggunakan STR_TO_DATE fungsi. Kueri akan terlihat seperti ini:

SELECT STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T”);

Tujuan STR_TO_DATE fungsinya adalah untuk mengonversi string teks ke format datetime. Sintaks untuk fungsi ini adalah sebagai berikut:

STR_TO_DATE(string, format);

Argumen pertama dari fungsi ini adalah string yang ingin kita konversi. Argumen kedua menentukan format string. Dalam kasus kami, kami menggunakan parameter berikut:

  • %W:Nama hari kerja dari Minggu sampai Sabtu.
  • %d:Hari dalam sebulan sebagai nilai numerik dari 01 hingga 31.
  • %m:Bulan sebagai nilai numerik dari 01 hingga 12.
  • %Y:Tahun sebagai nilai numerik 4 digit (yyyy).
  • %T:Waktu dalam format 24 jam (jj:mm:dd).

Anda dapat menemukan lebih banyak parameter dalam dokumentasi resmi untuk MySQL.

Hasil kueri ini akan terlihat seperti ini:

2021-02-10 12:30:20

Sekarang kita memiliki nilai dalam tipe data DATETIME. Untuk mengekstrak hanya waktu, kita harus menambahkan DATE_FORMAT fungsi ke kueri di atas.

Sintaks umum DATE_FORMAT fungsinya adalah:

DATE_FORMAT(date, format)

Maka kueri kita akan terlihat seperti ini:

SELECT DATE_FORMAT(STR_TO_DATE("Wednesday, 10 February 2021, 12:30:20", "%W, %d-%m-%Y, %T"), "%T");

Dalam contoh kita, argumen pertama dari DATE_FORMAT fungsi adalah tanggal yang dihasilkan dari STR_TO_DATE fungsi. Argumen kedua adalah formatnya, yang bekerja dengan cara yang sama seperti pada STR_TO_DATE fungsi. Karena kita hanya membutuhkan waktu di sini, kita tentukan "%T " sebagai argumen kedua.

Karakter % adalah wajib sebelum karakter penentu format. Kita harus menentukan format dalam urutan yang sama persis, termasuk semua tanda baca.

Hasil kueri yang kita lihat di bawah adalah hasil yang diharapkan.

12:30:20

Dengan menggunakan kombinasi kedua fungsi ini, Anda dapat mengekstrak setiap kemungkinan kombinasi tanggal dan waktu dari string teks.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql -> masukkan ke tbl (pilih dari tabel lain) dan beberapa nilai default

  2. Ubah kolom MySQL menjadi AUTO_INCREMENT

  3. Bagaimana cara mendapatkan kueri SQL yang dikompilasi dan mentah dari ekspresi SQLAlchemy?

  4. SQL Memilih dari dua Tabel dengan gabungan dan batas dalam

  5. Konfigurasi MySQL 8