Member 13064453 Ответов: 2

Как я могу вставить дату и время в SQL сервере


Привет, у меня есть проблема в C #, чтобы сохранить дату и время в sql server

Я получаю дату datetimepicker до тех пор, пока все не будет в порядке, но когда я запускаю процедуру в maceando, я получаю ошибку "Ошибка преобразования типа данных varchar в datetime."
И я попробовал изменить настройки даты, и это только позволяет мне сохранить дату

Что я уже пробовал:

private void Btn_Aceptar_Click_1(object sender, EventArgs e)
 {
string cmd = string.Format("Execute SpInsertar_Cliente '{0}','{1}','{2}','{3}'", 
this.Txt_Id_Cliente,
this.Txt_RasonSocial.Text.Trim(),
// parametro 3 con error
////////////////////////////////////////////////////////////////////////////// 
// Prueva 1 no funsiona
// CONVERT(DATETIME,'" & Format(FPEDIDO, "yyyy-mm-dd hh:mm:ss") & "',102) , "
// Prueva 2 no funsiona                                                     
// Convert.ToDateTime(DTP_Aniversario.Value, "yyyy-mm-dd hh:mm:ss"),
// Prueva 3 no funsiona     
// DTP_Aniversario.Value.ToString("m",CultureInfo.CreateSpecificCulture("en-us")),
// Prueva 4 funsiona esta generado una clase pero con la hora -> 00:00:00 
Validacion.fechachange(DTP_Aniversario.Value),
////////////////////////////////////////////////////////////////////////////////

this.CkB_Bloqueado.Checked,
);
Utilidades.EjecSql(cmd, Frm_Login.Conexion);
Mensajeok("Se ingreso correctamente el registro");
}

//Clase para validar la fecha
////////////////////////////////////////////////////////////////////////
public class Validacion 
{
       public static string fechachange(DateTime fecha)
        {
            return fecha.ToString("yyyy-MM-dd HH':'mm':'ss");
        }
}

Bryian Tan

почему в этой строке есть одинарные кавычки?

return fecha.ToString("yyyy-MM-dd HH':'mm':'ss");


Все должно быть в порядке. и может решить вашу проблему тоже.
return fecha.ToString("yyyy-MM-dd HH:mm:ss");

Prateek Dalbehera

Не могли бы вы спросить по-английски?? Похоже, что существует некоторое несоответствие типов данных.

Member 13064453

Я пробовал с этим чувством в классе " дата возвращения.ToString ("yyyy-MM-dd HH: mm: ss");"
Но это возвращается " 2017/03/17 00: 00: 00.000"
а мне нужно
"2017/03/17 10:30:05"

Sunasara Imdadhusen

Где находится код для сохранения даты в базе данных?

2 Ответов

Рейтинг:
1

CHill60

Как Брайан Тан указал на линию

return fecha.ToString("yyyy-MM-dd HH':'mm':'ss");
неверный. Это может быть
return fecha.ToString("yyyy-MM-dd HH:mm:ss");
или потенциально
return fecha.ToString("u");
если вы используете Стандартные строки формата даты и времени[^]

Однако вместо того, чтобы создавать команду с помощью string.format (что может сделать вас восприимчивым к атакам SQL-инъекций), почему бы не использовать SqlParameters (Класс SqlParameter (System. Data.SqlClient)[^])
Что-то вроде ...(непроверенный)
var cmd = New SqlCommand("Execute SpInsertar_Cliente @Client, @RasonSocail,  @Aniversario, @Bloqueado");
cmd.Parameters.AddWithValue("@Client", this.Txt_Id_Cliente);
cmd.Parameters.AddWithValue("@RasonSocail",this.Txt_RasonSocial.Text.Trim());
cmd.Parameters.AddWithValue("@Aniversario", DTP_Aniversario.Value);
cmd.Parameters.AddWithValue("@Blqueado",this.CkB_Bloqueado.Checked);


Рейтинг:
1

DELPIN SUSAI RAJ

Пример 1

insert into table1(approvaldate)values('20120618 10:34:09 AM');


Пример 2


insert table1 (approvaldate)
      values (convert(datetime,'18-06-12 10:34:09 PM',5))


CHill60

Забавно выглядящий код C#