Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Memformat Tanggal di T-SQL

Masalah:

Anda ingin menampilkan nilai tanggal dalam format lain di SQL Server.

Contoh:

Basis data kami memiliki tabel bernama company dengan data di kolom id (kunci utama), nama , dan tanggal_mulai .

id nama tanggal_mulai
1 Bank Lisa 20-01-2019
2 Lembaga Keuangan Kredit 14-03-2018
3 Williams Memegang 28-10-2019

Untuk setiap perusahaan, mari ubah tanggal mulai mereka ke format baru, 'YYYY/MM/DD', di mana YYYY adalah tahun dengan 4 digit, MM adalah bulan dengan 2 digit, dan DD adalah hari dengan 2 digit.

Solusi 1:

Kami akan menggunakan CONVERT() fungsi. Inilah kueri yang akan Anda tulis:

SELECT 
  CONVERT(NVARCHAR, start_date, 111 ) AS new_date
FROM company;

Ini hasilnya:

nama tanggal_mulai
Bank Lisa 2019/01/20
Lembaga Keuangan Kredit 2018/03/14
Williams Holding 2019/10/28

Diskusi:

Gunakan CONVERT() berfungsi untuk mengubah format tanggal dari kolom atau ekspresi tertentu.

Fungsi ini membutuhkan tiga argumen:

  1. Tipe data baru (dalam contoh kita, NVARCHAR).
  2. Sebuah ekspresi atau nama kolom yang berisi tanggal untuk diformat (dalam contoh kita, start_date kolom).
  3. Kode gaya opsional, sebagai bilangan bulat. (Dalam contoh kita, gaya '111' menampilkan tanggal menggunakan garis miring untuk memisahkan bagian-bagiannya.)

Tabel di bawah menyajikan kode gaya tanggal paling populer:

kode deskripsi
101 30/11/2019
102 2019.11.30
103 30/11/2019
104 30-11-2019
105 30-11-2019
110 30-11-2019
111 2019/11/30

Daftar lengkap gaya format dapat ditemukan di dokumentasi T-SQL.

Kueri di atas mengubah format tanggal Lisa Bank 2019-01-20 menjadi string yang berisi tanggal '2019/01/20'.

Solusi 2:

Di SQL Server 2012 dan yang lebih baru, Anda dapat menggunakan FORMAT() berfungsi untuk mengubah format tanggal/waktu. Anda menggunakan karakter di bawah ini untuk menentukan format yang diinginkan:

pola deskripsi
dd hari dalam rentang 01-31
MM bulan dalam kisaran 01-12
yy 2 digit tahun
yyyy tahun 4 digit
HH jam dalam rentang 00-23
mm menit dalam rentang 00-59
ss detik dalam rentang 00-59

Inilah kueri yang akan Anda tulis menggunakan FORMAT():

SELECT 
  FORMAT(start_date, ‘yyyy-MM-dd’ ) AS new_date
FROM company;

Argumen pertama adalah nilai datetime/date/time untuk memformat ulang. Yang kedua adalah string yang berisi pola format baru. Fungsi ini mengembalikan tipe data NVARCHAR. Gunakan FORMAT() jika Anda bekerja pada SQL Server 2012 atau yang lebih baru dan ingin mengonversi tanggal/waktu menjadi string yang berisi tanggal/waktu yang diformat.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Self Gabung

  2. Mengukur kinerja database di bawah tekanan

  3. Bagaimana Cara Menggunakan Ubah Pernyataan Tabel Dalam SQL?

  4. Bahasa Manipulasi Data SQL

  5. Pemantauan Log Transaksi