sql >> Base de Datos >  >> RDS >> Sqlserver

Pasar fecha y hora al procedimiento almacenado

Utilice DateTime.ParseExact para convertir su cadena a una fecha y hora, luego pase la fecha y hora

string test = "2014-09-18";
DateTime dt = DateTime.ParseExact(test, "yyyy-MM-dd", CultureInfo.InvariantCulture);
SqlParams[0] = new SqlParameter("@StartDate", SqlDbType.DateTime);
SqlParams[0].Value = dt;

Si su entrada proviene de un valor escrito por el usuario, probablemente sea mejor usar DateTime.TryParseExact para verificar la entrada sin obtener una excepción.

if(!DateTime.TryParseExact(test, "yyyy-MM-dd", 
             CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
    MessageBox.Show("Type a date in the format yyyy-MM-dd");
    return;
}