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......