Обычно при использовании строк в качестве даты:
DECLARE @mydate AS DATETIME
SELECT @mydate = CAST('2012-01-27 10:37:31' AS DATETIME)
SELECT @mydate
-----------------------
2012-01-27 10:37:31.000
Попробуйте с помощью CAST () или CONVERT () проверить справку T-SQL на этих 2.
ПРИМЕЧАНИЕ: используйте формат, упомянутый Микаэлем (то есть 2012-01-27 10: 37: 31.000 ')
Или вы, вероятно, увидите такие ошибки:
Msg 242, Level 16, State 3, Line 5
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Это правда, что было сказано о том, что преобразование / приведение не работает с вызовом процедуры, поэтому вам нужно немного изменить свой запрос:
DECLARE @return_value int
DECLARE @AsAt DATETIME
SELECT @AsAt = CAST('2012-01-27 10:37:31' AS DATETIME)
EXEC @return_value = [dbo].[myTABLE]
@AsAt,
@BatchID = 6754848
SELECT 'Return Value' = @return_value