Я думаю, что у вас будет больше проблем с преобразованием дат из разных форматов, чем с производительностью.
Допустим, ваша система (или некоторые из ваших систем) решили отправить что-то вроде ' 1993-02-10 ', вам придется "обработать" эту новую строку, потому что она никогда не будет соответствовать вашим запросам.
Возвращаясь к проблемам кода и производительности, я сделал этот быстрый пример, чтобы посмотрим, сможем ли мы поймать стоимость «неявного приведения», но это кажется презренным (см. CONVERT_IMPLICIT в конце плана запроса?):
-- Create a temp table to test
CREATE TABLE #TestTable (
[Date] [char](10) NULL,
[Integer] [char](10) NULL
)
-- And an index to search for [Integer]
CREATE INDEX Idx_Integer ON #TestTable ([Integer]);
// Create some data
INSERT INTO #TestTable( [Date], [Integer] ) VALUES('2019/01/01', 1)
INSERT INTO #TestTable( [Date], [Integer] ) VALUES('2019/02/01', 2)
INSERT INTO #TestTable( [Date], [Integer] ) VALUES('2019/03/01', 3)
INSERT INTO #TestTable( [Date], [Integer] ) VALUES('2019/04/01', 4)
INSERT INTO #TestTable( [Date], [Integer] ) VALUES('2019/05/01', 5)
GO 100000
// And a unique record so SQL uses the index
INSERT INTO #TestTable( [Date], [Integer] ) VALUES('2019/05/01', 7)
// Select with Query-Plan (Ctrl+M)
SELECT [Integer]
FROM #TestTable
WHERE [Integer] = 7
DROP TABLE #TestTable;
VS:
Удачного кодирования!