Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Mengonversi dari Satu Format Tanggal ke Format Lain di SQL Server menggunakan CONVERT()

Terkadang saat bekerja dengan database dan lingkungan pemrograman lainnya, Anda mendapatkan nilai tanggal tetapi dalam format/tipe data yang salah. Misalnya, jika tanggal telah dibuat dengan fungsi tanggal bawaan, itu mungkin menyertakan tanggal dan waktu, hingga nanodetik terakhir. Dan yang Anda inginkan hanyalah hari, bulan, dan tahun, katakan seperti ini:01-01-2018.

Jika ini terjadi saat Anda menggunakan SQL Server, Anda dapat menggunakan CONVERT() berfungsi untuk mengubahnya menjadi tipe data lain. Saat Anda melakukan ini, tipe data akan menentukan format tampilannya.

Artikel ini memberikan contoh penggunaan CONVERT() fungsi di SQL Server untuk mengonversi nilai tanggal ke tipe data (tanggal) lain.

Sintaks

Pertama, beginilah sintaks resminya:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Argumen ini didefinisikan sebagai berikut:

expression
Ekspresi apa pun yang valid.
data_type
Tipe data target. Ini termasuk xmlbesar , dan sql_variant . Tipe data alias tidak dapat digunakan.
length
Integer opsional yang menentukan panjang tipe data target. Nilai defaultnya adalah 30 .
style
Sebuah ekspresi integer yang menentukan bagaimana CONVERT() fungsi akan menerjemahkan ekspresi . Untuk nilai gaya NULL, NULL dikembalikan. tipe_data menentukan jangkauan.

Contoh 1 – Konversi dari SYSDATETIME() ke Tipe Data saat ini

Dalam contoh ini, kami membuat tanggal/waktu saat ini dengan SYSDATETIME() fungsi dan ubah itu menjadi tanggal tipe data.

Perhatikan bahwa SYSDATETIME() menghasilkan nilainya sebagai datetime2(7) tipe data, jadi kami mengonversinya dari tipe data tersebut ke tipe data lain.

SELECT 
    SYSDATETIME() AS Original,
    CONVERT(date, SYSDATETIME()) AS Converted;

Hasil:

+-----------------------------+-------------+
| Original                    | Converted   |
|-----------------------------+-------------|
| 2018-06-06 22:53:47.2318751 | 2018-06-06  |
+-----------------------------+-------------+

Contoh 2 – Konversi dari SYSDATETIME() ke Smalldatetime Tipe Data

Dalam contoh ini, kami mengonversi tanggal menjadi waktu kecil tipe data.

SELECT 
    SYSDATETIME() AS Original,
    CONVERT(smalldatetime, SYSDATETIME()) AS Converted;

Hasil:

+-----------------------------+---------------------+
| Original                    | Converted           |
|-----------------------------+---------------------|
| 2018-06-06 22:56:51.6873250 | 2018-06-06 22:57:00 |
+-----------------------------+---------------------+

Contoh 3 – Konversi dari SYSDATETIME() ke Tipe Data datetimeoffset

Dalam contoh ini, kami mengonversi tanggal menjadi datetimeoffset tipe data.

SELECT 
    SYSDATETIME() AS Original,
    CONVERT(datetimeoffset, SYSDATETIME()) AS Converted;

Hasil:

+-----------------------------+------------------------------------+
| Original                    | Converted                          |
|-----------------------------+------------------------------------|
| 2018-06-07 09:17:15.2410693 | 2018-06-07 09:17:15.2410693 +00:00 |
+-----------------------------+------------------------------------+

Contoh 4 – Konversi dari SYSDATETIME() ke Tipe Data waktu

Anda tidak dibatasi untuk menampilkan komponen tanggal dari nilai. Anda juga dapat mengubahnya menjadi waktu tipe data, sehingga hanya komponen waktu yang dikembalikan. Seperti ini:

SELECT 
    SYSDATETIME() AS Original,
    CONVERT(time, SYSDATETIME()) AS Converted;

Hasil:

+-----------------------------+------------------+
| Original                    | Converted        |
|-----------------------------+------------------|
| 2018-06-06 23:01:41.7070775 | 23:01:41.7070775 |
+-----------------------------+------------------+

Contoh 5 – Konversi dari SYSDATETIMEOFFSET()

Contoh sebelumnya semuanya menggunakan fungsi bawaan yang sama untuk menghasilkan nilai tanggal/waktu, tetapi tentu saja, itu tidak perlu dibuat oleh fungsi yang satu ini. Berikut ini contoh menggunakan SYSDATETIMEOFFSET() :

SELECT 
    SYSDATETIMEOFFSET() AS Original,
    CONVERT(date, SYSDATETIMEOFFSET()) AS Converted;

Hasil:

+------------------------------------+----------------------+
| Original                           | Converted            |
|------------------------------------+----------------------|
| 2018-06-07 09:12:27.3660685 +10:00 | 2018-06-07           |
+------------------------------------+----------------------+

Contoh 6 – Konversi dari Kueri Basis Data

Berikut adalah contoh mengonversi tanggal yang diambil dari kolom di database sampel WideWorldImporters:

USE WideWorldImporters;
SELECT DISTINCT TOP 10 
    LastEditedWhen, 
    CONVERT(date, LastEditedWhen) AS 'Converted'
FROM Sales.CustomerTransactions;

Hasil:

+-----------------------------+-------------+
| LastEditedWhen              | Converted   |
|-----------------------------+-------------|
| 2013-01-02 11:30:00.0000000 | 2013-01-02  |
| 2013-01-03 11:30:00.0000000 | 2013-01-03  |
| 2013-01-04 11:30:00.0000000 | 2013-01-04  |
| 2013-01-05 11:30:00.0000000 | 2013-01-05  |
| 2013-01-06 11:30:00.0000000 | 2013-01-06  |
| 2013-01-08 11:30:00.0000000 | 2013-01-08  |
| 2013-01-09 11:30:00.0000000 | 2013-01-09  |
| 2013-01-10 11:30:00.0000000 | 2013-01-10  |
| 2013-01-11 11:30:00.0000000 | 2013-01-11  |
| 2013-01-12 11:30:00.0000000 | 2013-01-12  |
+-----------------------------+-------------+

Perhatikan bahwa Anda tidak terbatas hanya mengonversi antara dua format tanggal yang berbeda. Jika Anda memiliki tanggal yang disimpan sebagai string misalnya, Anda juga dapat menggunakan CONVERT() untuk mengonversi dari string ke tanggal, serta tipe data lain yang mungkin perlu Anda konversi.

Saya juga telah menulis posting yang menunjukkan cara mengonversi antara format tanggal menggunakan CAST() fungsi menggunakan contoh yang sama seperti 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 Mempercepat SQL Server Anda Menggunakan Pemantauan Kinerja Basis Data

  2. Cara Membuat Rencana Eksekusi di SQL Server

  3. Bagaimana sys.dm_exec_describe_first_result_set Bekerja di SQL Server

  4. Buat Profil Email Database (SSMS)

  5. Urutan vs identitas