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

Cara Mengonversi Antara Format Tanggal di SQL Server menggunakan CAST ()

Di SQL Server, Anda dapat menggunakan menggunakan CONVERT() berfungsi untuk mengonversi nilai tanggal dari satu tipe data tanggal ke tipe data lainnya (atau antara tipe data lainnya dalam hal ini). Namun, itu bukan satu-satunya fungsi di kotak alat T-SQL untuk mengonversi antar tipe data.

CAST() function adalah bagian dari standar SQL ANSI, dan melakukan sebagian besar hal CONVERT() melakukan. Jadi, dalam banyak kasus, Anda memiliki pilihan fungsi mana yang ingin Anda gunakan.

Banyak profesional database lebih memilih CAST() karena fakta bahwa itu adalah bagian dari standar SQL ANSI, namun, yang lain lebih suka CONVERT() karena fungsionalitas ekstra yang ditawarkan implementasi T-SQL (seperti kemampuan memberikan gaya tanggal).

Bagaimanapun, artikel ini memberikan contoh konversi antara format tanggal yang berbeda menggunakan CAST() .

Sintaks

Sintaksnya seperti ini:

CAST ( expression AS data_type [ ( length ) ] )

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 .

Contoh 1 – Keluarkan SYSDATETIME() sebagai tanggal

Dalam contoh ini, kami membuat tanggal/waktu saat ini dengan SYSDATETIME() fungsi dan berikan nilai yang dikembalikan sebagai 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,
    CAST(SYSDATETIME() AS date) AS Converted;

Hasil:

+-----------------------------+-------------+
| Original                    | Converted   |
|-----------------------------+-------------|
| 2018-06-07 00:15:32.9265884 | 2018-06-07  |
+-----------------------------+-------------+

Contoh 2 – Cast SYSDATETIME() sebagai smalldatetime

Dalam contoh ini, kami memasukkan tanggal sebagai waktu kecil tipe data.

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

Hasil:

+-----------------------------+---------------------+
| Original                    | Converted           |
|-----------------------------+---------------------|
| 2018-06-07 00:16:05.5142017 | 2018-06-07 00:16:00 |
+-----------------------------+---------------------+

Contoh 3 – Keluarkan SYSDATETIME() sebagai datetimeoffset

Dalam contoh ini, kami memberikan tanggal sebagai datetimeoffset tipe data.

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

Hasil:

+-----------------------------+------------------------------------+
| Original                    | Converted                          |
|-----------------------------+------------------------------------|
| 2018-06-07 10:19:23.9457462 | 2018-06-07 10:19:23.9457462 +00:00 |
+-----------------------------+------------------------------------+

Contoh 4 – Keluarkan SYSDATETIME() sebagai waktu

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

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

Hasil:

+-----------------------------+------------------+
| Original                    | Converted        |
|-----------------------------+------------------|
| 2018-06-07 00:20:21.5829364 | 00:20:21.5829364 |
+-----------------------------+------------------+

Contoh 5 – Keluarkan SYSDATETIMEOFFSET() sebagai tanggal

Berikut ini contoh penggunaan fungsi yang berbeda untuk menghasilkan nilai tanggal/waktu asli:

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

Hasil:

+------------------------------------+----------------------+
| Original                           | Converted            |
|------------------------------------+----------------------|
| 2018-06-07 10:21:16.3617030 +10:00 | 2018-06-07           |
+------------------------------------+----------------------+

Contoh 6 – Mengonversi dari Kueri Basis Data

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

USE WideWorldImporters;
SELECT DISTINCT TOP 10 
    LastEditedWhen, 
    CAST(LastEditedWhen AS date) 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  |
+-----------------------------+-------------+

Saya juga telah menulis posting yang menunjukkan cara mengonversi antara format tanggal menggunakan CONVERT() 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. SQL Server 2005 - Ekspor tabel secara terprogram (jalankan file .sql untuk membangunnya kembali)

  2. Memahami Pernyataan DROP TABLE di SQL Server

  3. Menyetel Layanan Pelaporan SQL Server

  4. SYSDATETIME() vs GETDATE() di SQL Server:Apa Perbedaannya?

  5. Permintaan Sederhana untuk Mendapatkan Nilai Maks untuk setiap ID