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

SQLCLR dan DateTime2

Anda perlu mengubah tipe DateTime di tanda tangan Metode Fungsi Anda. SQLDateTime memetakan ke DateTime di database.

System.DateTime lebih tepat dan bisa dipetakan ke DateTime2 (tetapi secara default, itu akan dihapus sebagai DateTime dalam skrip penerapan).

[SqlFunction(DataAccess = DataAccessKind.None)]
//OLD Signature public static SqlDateTime UTCToLocalDT(SqlDateTime val) 
public static DateTime UTCToLocalDT(DateTime val) {
   ...
}

Kemudian Anda dapat mengubah skrip penerapan Anda untuk dibaca.

CREATE FUNCTION [UTCToLocalDT]
(
    @dt [datetime2]
)
RETURNS [datetime2]
AS
    EXTERNAL NAME [SQLCLR].[MyCompany.SQLCLR.DateTimeHelpCLR].UTCToLocalDT
GO

Menjalankan fungsi Anda sekarang akan memberi Anda hasil yang lebih tepat.

DECLARE @input DateTime2, @output DateTime2
SET @input = '2010-04-12 09:53:44.48123456'
SET @output = YourDatabase.dbo.[UTCToLocalDT](@input)
SELECT @input, @output


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Putaran .NET DateTime milidetik, sehingga dapat memuat milidetik SQL Server

  2. Masukkan data dari db ke db lain

  3. TSQL Shred XML - Bekerja dengan ruang nama

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

  5. Masukkan gambar ke dalam database