Я хочу добавить свой часовой пояс с помощью функции GETUTCDATE() в SQL Server. Я несколько раз искал, но не нашел подходящего решения. Заранее спасибо.GETUTCDATE() и часовой пояс (SQL Server)
ответ
Вы можете попробовать использовать switchoffset
как это:
select switchoffset(CAST(myDate as datetimeoffset),'+05:30') from someTable
Вместо '+05:30'
вы можете указать значение часового пояса.
Если вы хотите использовать часовой пояс с GETUTCDATE(), а затем просто добавить его как этот
select cast(GETUTCDATE() as varchar(20)) + '+5:30'
и если вы хотите сохранить его в качестве даты только тогда
select switchoffset(CAST(GETUTCDATE() as datetimeoffset),'+05:30')
Это не переход на летнее время. Зал – Aflred
только для sql 2016, он учитывает летнее время.
CREATE FUNCTION GetBelgiumTime
(
)
RETURNS datetime2
AS BEGIN
declare @dateoffset datetimeoffset
SET @dateoffset = convert(VARCHAR(2000),(SELECT GETUTCDATE() AT TIME ZONE 'Central European Standard Time'),126)
declare @date datetime2
set @date = convert(datetime2, LEFT(@dateoffset,28),126)
set @date = DATEADD(HOUR, convert(int,LEFT(RIGHT(@dateoffset,5), 2)), @date)
RETURN @date
END
select dbo.GetBelgiumTime() as BelgiumDateAndTime
Все это преобразование в и от varchars и dateadd, не нужно. Просто используйте 'SYSDATETIMEOFFSET' вместо' GETUTCDATE', а 'AT TIME ZONE' преобразуется правильно. –
С SQL Server 2016 вперед (и Azure SQL DB), вы можете сделать это:
SELECT SYSDATETIMEOFFSET() AT TIME ZONE @tz
где @tz является допустимый идентификатор часового пояса для Windows, такие как 'Pacific Standard Time'
, 'Central European Standard Time'
и т.д.
Однако, если вы находитесь на старую версию SQL Server, или предпочитаете использовать идентификаторы часовых поясов IANA, вы можете использовать мой SQL Server Time Zone Support проект, чтобы сделать следующее:
SELECT Tzdb.UtcToLocal(GETUTCDATE(), @tz)
, где @tz
является стандартным часовым поясом IANA, таким как 'America/Los_Angeles'
или 'Europe/Budapest'
.
- 1. Преобразование SQL Server DateTimeOffset в часовой пояс
- 2. JDBC SQL Часовой пояс
- 3. Часовой пояс Неверный к 30 минутам
- 4. Дата и часовой пояс
- 5. PHP и часовой пояс
- 6. log4php и часовой пояс
- 7. Django и часовой пояс
- 8. TimePickerDialog и часовой пояс
- 9. часовой пояс и летнее
- 10. MySQL: сохранить часовой пояс сервера или часовой пояс пользователя?
- 11. Преобразование/поиск GETUTCDATE()
- 12. Класс DateTime возвращает неверный часовой пояс и часовой пояс?
- 13. Преобразовать TIMESTAMP и часовой пояс на другой часовой пояс
- 14. TimeZone - как отличить часовой пояс GMT и непризнанный часовой пояс?
- 15. SQL Server GetUTCDate недействителен по умолчанию
- 16. SQL Server - GETUTCDATE() 'Неправильный синтаксис около)'
- 17. Как хранить часовой пояс в SQL Server 2005
- 18. utc + 2 getutcdate() - getdate() неверно
- 19. Использование GetUTCDate в SQL Server CE 4
- 20. Как найти часовой пояс станции в SQL Server 2012?
- 21. sql server конвертировать datetime в другой часовой пояс?
- 22. изменить часовой пояс php на часовой пояс сервера
- 23. Местный часовой пояс SQL Reporting Services 2005
- 24. XML Часовой пояс удалить
- 25. php интервал и часовой пояс
- 26. jQuery timepicker и часовой пояс
- 27. Linux, часовой пояс и ДСТ
- 28. SuiteTalk и часовой пояс несогласованность
- 29. PHP mktime и часовой пояс
- 30. Дата, DateTime и часовой пояс
Вместо 'GETUTCDATE' используйте [SYSDATETIMEOFSFSET()] (https://msdn.microsoft.com/en-us/library/bb677334.aspx). Он вернет значение 'datetimeoffset', которое включает смещение часового пояса машины. Если вы хотите переключить это на другое смещение, используйте [SWITCHOFFSET] (https://msdn.microsoft.com/en-us/library/bb677244.aspx) –