le DateFromParts est plus performant
DECLARE @compteur INT;
DECLARE @date DATETIME;
DECLARE @dStart DATETIME;
DECLARE @msString INT = 0;
DECLARE @msdate INT = 0;
DECLARE @msfunc INT = 0;
SET @dStart = GETDATE();
DECLARE @boucle INT;
SET @boucle = 1;
WHILE @boucle < 10
BEGIN
SET @compteur = 1;
WHILE @compteur < 10000
BEGIN
SET @Date = '19000101';
SET @compteur = @compteur + 1;
END;
SET @msString = @msString + DATEDIFF(ms, @dStart, GETDATE());
SET @dStart = GETDATE();
SET @compteur = 1;
WHILE @compteur < 10000
BEGIN
SET @Date = Datefromparts(1900,01,01)
SET @compteur = @compteur + 1;
END;
SET @msdate = @msdate + DATEDIFF(ms, @dStart, GETDATE());
SET @boucle = @boucle + 1;
END;
PRINT 'String ' + LEFT(@msString, 20) + ' ms ';
PRINT 'Date ' + LEFT(@msdate, 20) + ' ms ';
