0
我试图创建存储过程谁时区的特定城市的日期时间转换为另一种使用这篇文章:Effectively Converting dates between UTC and Local (ie. PST) time in SQL 2005检查存储过程:转换时区的特定城市的日期时间到另一个
ALTER PROCEDURE [dbo].[Get_TimeOfTimeZone]
(
@DateTimeFrom datetime,
@CityNameFrom nvarchar(MAX),
@CityNameTo nvarchar(MAX),
@ResultDate datetime OUTPUT
)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Declare @Query nvarchar(1000)
Declare @ParmDefinition nvarchar (500)
SET @Query = N''
SET @Query = @Query + N'SELECT tz.Offset, tz.TimeZoneID '
SET @Query = @Query + N'FROM TimeZoneCity, TimeZones tz WITH (NOLOCK) '
--SET @Query = @Query + N'INNER JOIN TimeZones WITH (NOLOCK) ON TimeZoneCity.TimeZoneID = tz.TimeZoneID '
SET @Query = @Query + N'LEFT JOIN TimeZoneDaylightSavings WITH (NOLOCK) ON TimeZoneDaylightSavings.TimeZoneID = tz.TimeZoneID '
SET @Query = @Query + N' WHERE TimeZoneCity.CityName = @CityNameTo '
SET @Query = @Query + N' AND TimeZoneCity.TimeZoneID = tz.TimeZoneID '
SET @Query = @Query + N' AND @DateTimeFrom >= TimeZoneDaylightSavings.BeginDst AND @DateTimeFrom < TimeZoneDaylightSavings.EndDst '
SET @Query = @Query + N'SET @ResultDate = DATEADD(HH, tz.Offset + CASE WHEN tz.TimeZoneID IS NOT NULL THEN 1 ELSE 0 END, '
SET @Query = @Query + N' DATEADD(HH, (SELECT TimeZones.Offset '
SET @Query = @Query + N' FROM TimeZones, TimeZoneCity WITH (NOLOCK) '
SET @Query = @Query + N' WHERE TimeZoneCity.CityName = @CityNameFrom '
SET @Query = @Query + N' AND TimeZoneCity.TimeZoneID = TimeZones.TimeZoneID), '
SET @Query = @Query + N' @DateTimeFrom)) '
SET @ParmDefinition = N'@ResultDate datetime, @DateTimeFrom datetime, @CityNameFrom nvarchar(MAX), @CityNameTo nvarchar(MAX) '
EXECUTE sp_executesql @Query, @ParmDefinition, @ResultDate = @ResultDate, @DateTimeFrom = @DateTimeFrom, @CityNameFrom = @CityNameFrom, @CityNameTo = @CityNameTo
SET NOCOUNT OFF
RETURN
当我执行它,我有这些错误:
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "tz.Offset" could not be bound.
Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "tz.TimeZoneID" could not be bound.
任何人可以检查我的存储过程,并帮助我吗?非常感谢
感谢bluefeet,这是一个好点,但它没有解决我的问题,我有同样的错误。也许第二部分查询不正确? – Vinipuh 2013-03-19 17:37:51
如果删除查询中的SET @ ResultDate部分,它是否有效? – Taryn 2013-03-19 17:41:10
如果我删除它的作品! – Vinipuh 2013-03-19 17:59:22