sql >> データベース >  >> RDS >> Sqlserver

SQL2005ServerからTimeZoneInfoにアクセスします

    SQL2008データベースでこれを実行し終えたところです。

    まず、DBを信頼できるものに設定し、所有者が正しいことを確認する必要がありました。

    use [myDB]
    go
    alter database [myDB] set trustworthy on
    go
    
    exec sp_changedbowner 'sa'
    go
    

    次に、.NETソリューションを作成しました

    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Data.SqlTypes
    Imports Microsoft.SqlServer.Server
    Imports System.Collections.ObjectModel
    Imports System.Runtime.InteropServices
    
    Partial Public Class StoredProcedures
        <Microsoft.SqlServer.Server.SqlProcedure()> _
        Public Shared Sub sp_ConvertTime(ByVal UTCTime As DateTime, ByVal ZoneID As String, <Out()> ByRef Output As DateTime)
        Dim sp As SqlPipe = SqlContext.Pipe
    
        Dim ConvertedTime As DateTime
        Dim tzUTC = TimeZoneInfo.FindSystemTimeZoneById("UTC")
        Dim tzNew = TimeZoneInfo.FindSystemTimeZoneById(ZoneID)
    
        ConvertedTime = TimeZoneInfo.ConvertTime(UTCTime, tzUTC, tzNew)
    
        Output = ConvertedTime
        sp.Send(ConvertedTime)
    
        ConvertedTime = Nothing
        tzUTC = Nothing
        tzNew = Nothing
        sp = Nothing
    
    End Sub
    End Class
    

    展開する前に、アクセス許可レベルを安全ではないに設定しました 。

    次に、それをデプロイして、出力ウィンドウでビルドエラーをチェックし、それらを修正しました。

    これがSQLテストです

    DECLARE @UTCTime datetime
    DECLARE @ZoneID varchar(21)
    DECLARE @NewTime datetime
    
    SET @UTCTime = GETUTCDATE()
    SET @ZoneID = 'Central Standard Time'
    
    exec sp_ConvertTime @UTCTime, @ZoneID, @NewTime OUTPUT
    select @NewTime AS NewTime
    


    1. JSON_VALID()–MySQLで有効なJSONをテストする

    2. GROUP BYを使用すると、MYSQLに誤った行が表示される

    3. MySQLdbを使用してPythonで.sqlファイルを実行します

    4. SQL Server 2000:連結集計サブクエリを実行するためのアイデア