sql >> Databáze >  >> RDS >> Sqlserver

SQLCLR a DateTime2

Musíte změnit typy DateTime v podpisu vaší funkční metody. SQLDateTime mapuje na DateTime v databázi.

System.DateTime je přesnější a může být namapován na DateTime2 (ale ve výchozím nastavení bude vynechán jako DateTime ve skriptu nasazení).

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

Poté můžete svůj skript nasazení upravit tak, aby četl.

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

Spuštění vaší funkce by nyní mělo poskytnout přesnější výstup.

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


  1. Skupina parametrů AWS RDS nemění kódování MySQL

  2. Oracle Database Developer Choice Awards

  3. Nová funkce Oracle 18c:Online úprava dělení

  4. Více připojení ke stejné tabulce