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

Cara Mengubah Format Tanggal Saat Ini di SQL Server (T-SQL)

Saat Anda terhubung ke SQL Server, biasanya format tanggal ditentukan oleh bahasa Anda. Bahasa default untuk sesi adalah bahasa untuk login sesi tersebut, kecuali jika diganti berdasarkan sesi dengan menggunakan Open Database Connectivity (ODBC) atau OLE DB API.

Pengaturan format tanggal mempengaruhi interpretasi string karakter saat dikonversi ke nilai tanggal untuk penyimpanan dalam database. Ini tidak mempengaruhi tampilan nilai tipe data tanggal yang disimpan dalam database atau format penyimpanan.

Terlepas dari kenyataan bahwa bahasa sesi Anda menentukan format tanggal, Anda dapat mengganti format tanggal jika diperlukan. Misalnya, jika bahasa Anda us_english , format tanggalnya adalah mdy (agar 01/07/2018 mewakili 1 Juli dan bukan 7 Januari). Anda dapat mengubah ini sehingga format tanggal dmy (atau format lainnya) selama bahasa tetap us_english .

Anda dapat menggunakan T-SQL untuk secara eksplisit mengatur format tanggal sesi saat ini dengan menggunakan SET DATEFORMAT pernyataan.

Sintaks

Begini sintaksnya:

SET DATEFORMAT { format | @format_var }

Dimana format | @format_var adalah urutan bagian tanggal.

Nilai yang valid adalah mdy , dmy , ymd , ydm , myd , dan dym . Ini dapat berupa Unicode atau kumpulan karakter bita ganda (DBCS) yang dikonversi ke Unicode.

Namun, perhatikan bahwa  ydm tidak didukung untuk tanggaldatetime2 dan datetimeoffset tipe data.

Contoh

Sebelum kita mengubah apa pun, mari kita lihat opsi pengguna saat ini. Ini akan memberi tahu kami apa bahasa saat ini dan format tanggal (serta beberapa hal lainnya):

DBCC USEROPTIONS;

Hasil:

+-------------------------+----------------+
| Set Option              | Value          |
|-------------------------+----------------|
| textsize                | -1             |
| language                | us_english     |
| dateformat              | mdy            |
| datefirst               | 7              |
| lock_timeout            | 5000           |
| quoted_identifier       | SET            |
| arithabort              | SET            |
| ansi_null_dflt_on       | SET            |
| ansi_warnings           | SET            |
| ansi_padding            | SET            |
| ansi_nulls              | SET            |
| concat_null_yields_null | SET            |
| isolation level         | read committed |
+-------------------------+----------------+

Kita bisa melihat bahwa bahasanya adalah us_english dan format tanggalnya adalah mdy (yang merupakan format tanggal default untuk bahasa tersebut).

Jadi mari kita ubah format tanggal, lalu periksa kembali opsi pengguna:

SET DATEFORMAT dmy;
DBCC USEROPTIONS;

Hasil:

 
+-------------------------+----------------+
| Set Option              | Value          |
|-------------------------+----------------|
| textsize                | -1             |
| language                | us_english     |
| dateformat              | dmy            |
| datefirst               | 7              |
| lock_timeout            | 5000           |
| quoted_identifier       | SET            |
| arithabort              | SET            |
| ansi_null_dflt_on       | SET            |
| ansi_warnings           | SET            |
| ansi_padding            | SET            |
| ansi_nulls              | SET            |
| concat_null_yields_null | SET            |
| isolation level         | read committed |
+-------------------------+----------------+

Dan kita dapat melihat bahwa format tanggal telah berubah, sedangkan bahasanya tetap sama.

Jadi begini cara merubah format tanggal tanpa merubah bahasa. Seperti yang disebutkan, jika Anda mengubah bahasa, itu akan secara implisit mengatur format tanggal pada waktu yang sama. Jika itu yang ingin Anda lakukan, lihat Cara Mengatur Bahasa Saat Ini di SQL Server (T-SQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA SQL Server Tidak ada pemetaan Dialek untuk tipe JDBC:-9

  2. Bagaimana cara menggunakan GROUP BY untuk menggabungkan string di SQL Server?

  3. Transaksi Terdistribusi pada Server Tertaut antara sql server dan mysql

  4. Cara Mencegah Serangan Injeksi SQL dengan Aman

  5. Hapus semua spasi dari string di SQL Server