Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 为什么数据库中的小时和分钟显示不完全相同?_Sql Server - Fatal编程技术网

Sql server 为什么数据库中的小时和分钟显示不完全相同?

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

我在数据库中有一个名为CarrierDeliveryStartDateHour的字段,我想要实现的是显示下午3:45或AM,这取决于时间

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)