SYSUTCDATETIME()
и GETUTCDATE()
са две T-SQL функции за дата/час, налични за използване в SQL Server. Тези функции връщат датата и часа на компютъра, на който се изпълнява екземплярът на SQL Server. И двете функции връщат датата и часа като UTC време (универсално координирано време).
Така че и двете функции правят едно и също нещо. Почти.
Ето как се различават тези две функции:
GETUTCDATE()
връща стойността си като дата и час стойност.SYSUTCDATETIME()
връща стойността си като datetime2 стойност.
Това означава, че SYSUTCDATETIME()
осигурява повече секунди точност. datetime2 типът данни също има по-голям диапазон от datetime .
Пример
Ето пример за демонстриране на стойността, върната от всяка функция:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Резултат:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Така че това е подобно на разликата между SYSDATETIME()
и GETDATE()
.
Кой да използвам?
Microsoft препоръчва да използваме datetime2 с нашите стойности за дата/час. Този тип данни е в съответствие със стандарта SQL и е по-преносим от datetime .
Затова използвайте SYSUTCDATETIME()
освен ако нямате конкретна причина да не го правите.