ENVIAR TIPO DATA PARA STORED PROCEDURE

RIOLEAL 14/10/2024 05:41:57
#503623
Estou usando SQL SERVER como banco de dados.
Tenho uma tabela, chamada tblVendas com um campo tipo date, chamado dia.
Estou usando Stored Procedure, chamada INSERT_VENDA para gravar os dados da venda no banco de dados.
.
O problema é que não estou conseguindo gravar o valor da data no banco de dados.
Já tentei enviar no seguintes formatos: 'yyyy-mm-dd', 'yyyy/mm/dd', #yyyy-mm-dd#, #yyyy/mm/dd#, `yyyy-mm-dd`, `yyyy/mm/dd`, ´yyyy-mm-dd´.
.
Quando eu executo a Stored Procedure, usando aspas simples, dentro do SQL, ela funciona:
EXECUTE INSERT_VENDA '2024-10-14';
.
Quando envio pelo VB.NET, não funciona de jeito nenhum.
Exemplo:
Dim comandoSQL As SqlCommand
comandoSQL = New SqlCommand("INSERT_VENDA", conexaoSQL)
With comandoSQL
.CommandType = CommandType.StoredProcedure
.Parameters.AddWithValue("@dia", "'2024-10-14'")

If .ExecuteNonQuery = 0 Then
INSERT_VENDA_SQL = False
End If
End WIth

Sempre retorna a exceção: "Estouro de SqlDateTime. Deve estar entre 1/1/1753 12:00:00 AM e 31/12/9999 11:59:59 PM".
RIOLEAL 16/10/2024 05:13:47
#503624
Senhores,
Depois de bater cabeça, resolvi transformar as duas colunas (data (date) e hora (time)) em uma única coluna do tipo datetime.
Desse modo, consegui fazer o que eu queria:

Dim comandoSQL As SqlCommand
comandoSQL = New SqlCommand("INSERT_VENDA", conexaoSQL)
With comandoSQL
.CommandType = CommandType.StoredProcedure
...
.Parameters.Add("@dia", SqlDbType.DateTime).Value = DateTime.Parse(Now)
...

.ExecuteNonQuery()
.Dispose()
End With
Tópico encerrado , respostas não são mais permitidas