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

Bagaimana mengonversi kolom stempel waktu SQL Server ke format datetime

TIMESTAMP SQL Server tipe data tidak ada hubungannya dengan tanggal dan waktu!

Ini hanya representasi heksadesimal dari bilangan bulat 8 byte berturut-turut - ini hanya baik untuk memastikan baris tidak berubah sejak dibaca.

Anda dapat membaca bilangan bulat heksadesimal atau jika Anda menginginkan BIGINT . Sebagai contoh:

SELECT CAST (0x0000000017E30D64 AS BIGINT)

Hasilnya adalah

400756068

Dalam versi SQL Server yang lebih baru, ini disebut RowVersion - karena memang begitu adanya. Lihat dokumen MSDN di ROWVERSION:

Adalah tipe data yang memperlihatkan bilangan biner unik yang dihasilkan secara otomatis dalam database. rowversion umumnya digunakan sebagai mekanisme untuk versi-stamping baris tabel. Tipe data versirow adalah hanya angka yang bertambah dan tidak mempertahankan tanggal atau waktu . Untuk merekam tanggal atau waktu, gunakan tipe datetime2data.

Jadi Anda tidak bisa mengonversi TIMESTAMP SQL Server ke tanggal/waktu - ini bukan tanggal/waktu.

Tetapi jika Anda mengatakan stempel waktu tetapi sebenarnya yang Anda maksud adalah DATETIME kolom - maka Anda dapat menggunakan salah satu format tanggal valid yang dijelaskan dalam topik CAST dan CONVERT di bantuan MSDN. Itu didefinisikan dan didukung "di luar kotak" oleh SQL Server. Ada lagi yang tidak didukung, mis. Anda harus melakukan banyak casting dan concatenating manual (tidak disarankan).

Format yang Anda cari terlihat sedikit seperti ODBC kanonik (gaya =121):

DECLARE @today DATETIME = SYSDATETIME()

SELECT CONVERT(VARCHAR(50), @today, 121)

memberikan:

2011-11-14 10:29:00.470

SQL Server 2012 akhirnya akan memiliki FORMAT berfungsi untuk melakukan pemformatan khusus......



  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 SEMUA Operator Dijelaskan

  2. Pemecahan Masalah Hibah Memori Variabel di SQL Server

  3. Apa Nama Batasan Default di SQL Server?

  4. Apa perbedaan antara indeks berkerumun dan tidak berkerumun?

  5. Prosedur Tersimpan Panggilan SQL untuk setiap Baris tanpa menggunakan kursor