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

Akses TimeZoneInfo dari SQL 2005 Server

Saya baru saja selesai melakukan ini pada database SQL 2008.

Pertama saya harus menyetel DB agar dapat dipercaya dan memverifikasi bahwa pemiliknya benar.

use [myDB]
go
alter database [myDB] set trustworthy on
go

exec sp_changedbowner 'sa'
go

Selanjutnya, saya membuat solusi .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

Sebelum penerapan, saya menyetel tingkat Izin ke Tidak Aman .

Selanjutnya saya menyebarkannya, saya memeriksa jendela Output untuk kesalahan Build dan memperbaikinya.

Berikut adalah Tes 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa terhubung ke SQL Server menggunakan keamanan terintegrasi dengan driver JDBC?

  2. Cara Menemukan Nama Batasan di SQL Server

  3. SQL Server Internal:Operator Bermasalah Pt. III – Mengurutkan

  4. CURRENT_TIMESTAMP Contoh di SQL Server (T-SQL)

  5. Jumlah kolom non-null di setiap baris