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

STR_TO_DATE() Contoh – MySQL

MySQL STR_TO_DATE() fungsi memungkinkan Anda membuat nilai tanggal dari berbagai bagian tanggal.

Saat menggunakan fungsi ini, Anda memberikan string dari berbagai bagian tanggal, dan argumen kedua yang menentukan format tanggal yang disediakan.

Sintaks

Sintaksnya seperti ini:

STR_TO_DATE(str,format)

Dimana str adalah string yang berisi bagian tanggal, dan format adalah string format (menentukan bagaimana str argumen diformat).

Contoh 1 – Penggunaan Dasar

Berikut ini contoh untuk didemonstrasikan.

SELECT STR_TO_DATE('31,12,1999','%d,%m,%Y');

Hasil:

+--------------------------------------+| STR_TO_DATE('31,12,1999','%d,%m,%Y') |+--------------------------- -----------+| 1999-12-31 |+----------------------------------+

Contoh 2 – Urutan Format String

String format harus cocok dengan nilai yang diberikan dalam string tanggal. Misalnya, Anda tidak dapat melakukan hal berikut:

SELECT STR_TO_DATE('31,12,1999','%m,%d,%Y');

Hasil:

+--------------------------------------+| STR_TO_DATE('31,12,1999','%m,%d,%Y') |+--------------------------- -----------+| NULL |+----------------------------------+

Alasan ini tidak berhasil adalah karena kami mencoba memaksa bulan memiliki nilai 31, tetapi hanya ada 12 bulan dalam setahun. Jadi ini akan menghasilkan nilai tanggal yang tidak valid.

Oleh karena itu, Anda harus berhati-hati saat menggunakan fungsi ini, terutama jika nilai hari adalah 12 atau kurang, jika tidak, Anda bisa berakhir dengan nilai bulan dan hari yang tertukar tanpa menyadarinya.

Misalnya seperti ini:

SELECT STR_TO_DATE('07,12,1999','%d,%m,%Y'), STR_TO_DATE('07,12,1999','%m,%d,%Y'); 

Hasil:

+--------------------------------------+------- -------------------------------+| STR_TO_DATE('07,12,1999','%d,%m,%Y') | STR_TO_DATE('07,12,1999','%m,%d,%Y') |+--------------------------- -----------+-------------------------------------- +| 1999-12-07 | 1999-07-12 |+----------------------------------+---- ----------------------------------+

Dalam hal ini, kita tidak mendapatkan nilai NULL seperti pada contoh sebelumnya, karena keduanya 07 dan 12 bisa sehari atau sebulan.

Contoh 3 – Mencocokkan Format String

Meskipun string format dalam urutan yang benar, itu juga harus cocok dengan format bagian tanggal yang disediakan dalam argumen pertama.

Jadi misalnya, Anda tidak dapat melakukan ini:

SELECT STR_TO_DATE('31 Des, 1999','%d,%m,%Y');

Hasil:

+---------------------------------------+| STR_TO_DATE('31 Des, 1999','%d,%m,%Y') |+---------------------------- ------------+| NULL |+--------------------------------------------------+

Dalam hal ini, kita perlu melakukan sesuatu seperti ini:

SELECT STR_TO_DATE('31 Des, 1999','%d %M, %Y');

Hasil:

+-----------------------------------------+| STR_TO_DATE('31 Des, 1999','%d %M, %Y') |+----------------------------- ------------+| 1999-12-31 |+------------------------------+ 

Contoh 4 – Menggunakan Fungsi GET_FORMAT()

Anda juga dapat meneruskan GET_FORMAT() berfungsi sebagai argumen kedua.

Ini contohnya.

SELECT STR_TO_DATE('12.07.1999', GET_FORMAT(DATE, 'USA'));

Hasil:

+------------------------------------------------- ------+| STR_TO_DATE('12.07.1999', GET_FORMAT(DATE, 'USA')) |+------------------------------- ----------+| 1999-12-07 |+-------------------------------------------------- ---------+

Contoh 5 – Nilai Waktu Tanggal

Anda juga dapat menggunakan fungsi ini untuk mengembalikan nilai waktu atau waktu.

Berikut ini contoh penggunaan nilai datetime.

SELECT STR_TO_DATE('31/12/1999 09:30:17','%d/%m/%Y %H:%i:%s');

Hasil:

+------------------------------------------------- ----------+| STR_TO_DATE('31/12/1999 09:30:17','%d/%m/%Y %H:%i:%s') |+-------------- ------------------------------------------+| 1999-12-31 09:30:17 |+-------------------------------------- ------------------+

Format String Specifier

Penentu berikut dapat digunakan dalam format string. Selain itu, Anda juga dapat menggunakan string literal dalam format string.

Specifier Deskripsi
%a Singkat nama hari kerja (Sun ..Sat )
%b Nama bulan disingkat (Jan ..Dec )
%c Bulan, numerik (0 ..12 )
%D Hari dalam sebulan dengan akhiran bahasa Inggris (0th , 1st , 2nd , 3rd , …)
%d Hari dalam sebulan, numerik (00 ..31 )
%e Hari dalam sebulan, numerik (0 ..31 )
%f Mikrodetik (000000 ..999999 )
%H Jam (00 ..23 )
%h Jam (01 ..12 )
%I Jam (01 ..12 )
%i Menit, numerik (00 ..59 )
%j Hari dalam setahun (001 ..366 )
%k Jam (0 ..23 )
%l Jam (1st ..12 )
%M Nama bulan (January ..December )
%m Bulan, numerik (00 ..12 )
%p AM atau PM
%r Waktu, 12 jam (hh:mm:ss diikuti oleh AM atau PM )
%S Detik (00 ..59 )
%s Detik (00 ..59 )
%T Waktu, 24 jam (hh:mm:ss )
%U Minggu (00 ..53 ), di mana hari Minggu adalah hari pertama dalam seminggu; WEEK() modus 0
%u Minggu (00 ..53 ), di mana Senin adalah hari pertama dalam seminggu; WEEK() mode 1
%V Minggu (01 ..53 ), di mana hari Minggu adalah hari pertama dalam seminggu; WEEK() modus 2; digunakan dengan %X
%v Minggu (01 ..53 ), di mana Senin adalah hari pertama dalam seminggu; WEEK() modus 3; digunakan dengan %x
%W Nama hari kerja (Sunday ..Saturday )
%w Hari dalam seminggu (0 =Minggu..6 =Sabtu)
%X Tahun untuk minggu di mana hari Minggu adalah hari pertama dalam seminggu, numerik, empat digit; digunakan dengan %V
%x Tahun untuk minggu, di mana Senin adalah hari pertama dalam seminggu, numerik, empat digit; digunakan dengan %v
%Y Tahun, numerik, empat digit
%y Tahun, numerik (dua digit)
%% Sebuah % literal karakter
%x x , untuk setiap “x ” tidak tercantum di atas

  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 Mendapatkan Data Minggu Ini di MySQL

  2. Memantau Percona XtraDB Cluster - Metrik Utama

  3. Pilih nilai yang memenuhi kondisi berbeda pada baris berbeda?

  4. Pengumuman MySQL 5.6 EOL

  5. Cara Memanggil Prosedur Tersimpan MySQL Dengan Python