在SQL Server CE中更正日期时间格式?

twe*_*ypi 5 c# sql datetime sql-server-ce

我有一个C#DateTime类,想知道我需要在SQL Server CE查询中将其格式化以将其插入到数据库中,我希望插入日期和时间.目前当我尝试其变体时我得到无效格式异常.

我正在使用的当前格式是:dd/MM/yyyy,希望做类似的事情dd/MM/yyyy hh:mm:ss.

我试图插入的方式是这样的:

 ( ( DateTime )_Value ).ToString( "dd/MM/yyyy hh:mm:ss" )
Run Code Online (Sandbox Code Playgroud)

显然hh:mm:ss不起作用,如果那不是dd/MM/yyyy在查询中成功执行的话.

我尝试了一些格式,包括我在谷歌上发现但迄今为止没有一种格式...

Joe*_*orn 15

如果你担心格式正确,那么事情已经严重错误了.在任何数据库中正确使用datetime值需要做两件事,而不仅仅是sqlce:

  1. 确保您使用的是日期时间类型(不是像varchar这样的文本类型)
  2. 确保在参数化查询中使用日期时间参数,而不是字符串连接.

如果您这样做,则不需要格式化.完全没有.例:

 void SetDate(int recordID, DateTime timeStamp)
 {
    string SQL = "UPDATE [sometable] SET someDateTimeColumn= @NewTime WHERE ID= @ID";

    using (var cn = new SqlCeConnection("connection string here"))
    using (var cmd = new SqlCeCommand(SQL, cn))
    {
        cmd.Parameters.Add("@NewTime", SqlDbType.DateTime).Value = timeStamp;
        cmd.Parameters.Add("@ID", SqlDbType.Integer).Value = recordID;

        cn.Open();
        cmd.ExecuteNonQuery();
    }
} 
Run Code Online (Sandbox Code Playgroud)

永远不会永远使用字符串操作将值替换为sql查询.这是一个巨大的禁忌.


Jak*_*164 6

请尝试以下格式:

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss")
Run Code Online (Sandbox Code Playgroud)