Lo que sucede es que la configuración del servidor SQL Server recibe el orden del año, mes día, hora...etc. en un orden específico...
Lo que yo hago para que eso no me afecte es decirle en qué orden daré los parámetros... la instrucción que empleo es la siguiente, poniendo primero el año, luego el mes, luego el día y de ser necesario la hora, minutos, segundos, milisegundos. Es esta:
Código:
'Tomar la fecha.
Fecha = Request.Form("Ano") & "-" & Request.Form("Mes") & "-" & Request.Form("Dia")
'Y al momento de enviar a insertar la fecha, utiliza la función Convert de SQL Server agregando un tercer parámetro:
cSQL = "INSERT INTO [TABLA] VALUES (CONVERT(DateTime, " & Fecha & ", 120), CAMPO2, CAMPO3, CAMPOn)
A mí no me ha dado problemas, pero puedes emplear el orden que quieras, con la función CONVERT.
Estando en el SQL Server Query Analyzer puedes presionar Shift + F1 y te saldrá la ayuda de Transact SQL y ahí busca el tema
CAST and CONVERT. Ahí vienen los distintos formatos del manejo de fechas con el convert... pero debes cuidar ponerlos en el orden especificado en el tercer parámetro.
Espero te sirva.
Saludos