[T-SQL][C#] Konwersja na datę i porównanie dat w klauzuli WHERE

Cześć.
Mam trochę można by rzec infantylne pytanie.
Mam w tabeli kalendarz kolumnę startTime o typie VARCHAR(50) i przechowuję w niej dane w postaci 2018-06-26T00:00:00 (tak zapisuje dane biblioteka kalendarza, z której korzystam). W programie chcę zrobić 2 dateTimePickery i pobrać z nich dane, na podstawie których będę wyświetlał informacje na ekranie. Próbuję jednak wykombinować jak przekonwertować date z varchar i ją porównać. Próbowałem już kilku sposobów znalezionych w necie:

"SELECT k.Text FROM kalendarz k WHERE k.status = 'zakonczone' AND CAST(SUBSTRING(k.startTime, 1, 10) AS datetime) BEETWEN '" + dateTimePicker1.Value.ToString() + "' AND '" + dateTimePicker2.Value.ToString() + "'
Jednak zawsze dostaje komunikat:

„An expression of non-boolean type specified in a context where a condition is expected, near ‘BEETWEN’.”

A sprawdziłeś jaki SQL powstaje po odczytaniu wartości z timepickerów?