Sql server 为什么数据库中的小时和分钟显示不完全相同?
我在数据库中有一个名为CarrierDeliveryStartDateHour的字段,我想要实现的是显示下午3:45或AM,这取决于时间Sql server 为什么数据库中的小时和分钟显示不完全相同?,sql-server,Sql Server,我在数据库中有一个名为CarrierDeliveryStartDateHour的字段,我想要实现的是显示下午3:45或AM,这取决于时间 SELECT FORMAT(getdate(), 'hh:mm tt') AS CarrierDeliveryStartDateHour 我正在使用这个查询。但问题是,当我从数据库中查询时,它显示的是错误的时间,例如,凌晨2:00,它应该显示3:45,我认为我们应该应用时区和偏移量。任何想法,请创建函数[dbo].[sfUtcToLocal] ( @UtcD
SELECT FORMAT(getdate(), 'hh:mm tt') AS CarrierDeliveryStartDateHour
我正在使用这个查询。但问题是,当我从数据库中查询时,它显示的是错误的时间,例如,凌晨2:00,它应该显示3:45,我认为我们应该应用时区和偏移量。任何想法,请创建函数[dbo].[sfUtcToLocal] ( @UtcDatetime日期时间偏移量, @IDTimeZone类型时区 ) 返回DATETIMEOFFSET 作为 开始
结束
GETUTCDATE()
显示数据库时区偏移不包括在内。我必须生成函数来解决您的问题,但我认为您更接近于答案。
DECLARE @UTCoffset typUTCoffset
SELECT @UTCoffset = COALESCE(ttzd.UTCoffset, ttz.UTCoffset)
FROM tabTimeZone AS ttz
LEFT JOIN tabTimeZoneDST AS ttzd ON ttzd.IDTimeZone = ttz.IDTimeZone
AND @UtcDatetime BETWEEN ttzd.StartDate AND ttzd.EndDate
WHERE ttz.IDTimeZone = @IDTimeZone
AND ttz.[Deleted] = 0
RETURN ISNULL(SWITCHOFFSET (@UtcDatetime, @UTCoffset), @UtcDatetime)