Torna al Thread

USE [DATI] GO /****** Object: UserDefinedFunction [dbo].[UTCToLocal] Script Date: 11/05/2010 14:39:04 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER function [dbo].[UTCToLocal](@UTCDate datetime) returns datetime as begin declare @LocalTime datetime, @Offset int DECLARE @year int DECLARE @MarDate datetime DECLARE @OctDate datetime DECLARE @DST_Start datetime DECLARE @DST_End datetime DECLARE @Date_Converted datetime set @LocalTime=@UTCDate SET @year = DATEPART(year, @LocalTime) SET @MarDate = '03-15-' + CONVERT(char(4), @year) SET @OctDate = '10-15-' + CONVERT(char(4), @year) SET @DST_Start = DATEADD(hour, 1, (dbo.udf_LastSundayOfTheMonth(@MarDate))) SET @DST_End = DATEADD(hour, 1, (dbo.udf_LastSundayOfTheMonth(@OctDate))) SET @DST_End = DATEADD(second, -1, @DST_End) if @LocalTime between @DST_Start and @DST_end set @Offset=+2 else set @Offset=+1 set @Date_Converted=DATEADD(hh,@offset,@LocalTime) return @Date_Converted end USE [DATI] GO /****** Object: UserDefinedFunction [dbo].[udf_LastSundayOfTheMonth] Script Date: 11/05/2010 14:39:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[udf_LastSundayOfTheMonth] ( @Date datetime ) RETURNS datetime AS BEGIN DECLARE @weekday int DECLARE @Lastday datetime DECLARE @number int DECLARE @day datetime SELECT @weekday = 0 SELECT @Lastday = (DATEADD(day, -1, CAST(STR(MONTH(@Date)+1) + '/' + STR(01) + '/' + STR(YEAR(@Date)) AS DateTime))) SELECT @number = DATEPART(day, @Lastday) WHILE @weekday <> 1 BEGIN SELECT @day = (CAST(STR(MONTH(@Date)) + '/' + STR(@number) + '/' + STR(YEAR(@Date)) AS DateTime)) SELECT @weekday = DATEPART(weekday, @day) SELECT @number = @number - 1 END RETURN @day END
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5