哪一个:
是在SQL Server 2008+中存储日期和时间的推荐方法吗?
我知道精度(和存储空间可能)的差异,但暂时忽略这些,是否有关于何时使用什么的最佳实践文档,或者我们应该只使用它datetime2?
我有一个为2008年写的应用程序.
我们正在使用linq实体.
我们现在必须将数据库切换到2005.我在linq SELECT查询中收到以下错误:
错误 - SqlDateTime溢出.必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间.
违规行是:
DateOfBirth = ((s.Date_Of_Birth == null) || (s.Date_Of_Birth <= lowdate)) ?
DateTime.MinValue : s.Date_Of_Birth.Value,
Run Code Online (Sandbox Code Playgroud)
DateOfBirth是DateTime类型,是我们自己的业务对象(非实体)中的属性.
任何人都知道如何修改此行以使此查询运行?
string con = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
SqlConnection cn = new SqlConnection(con);
string insert_jobseeker = "INSERT INTO JobSeeker_Registration(Password,HintQuestion,Answer,Date)"
+ " values (@Password,@HintQuestion,@Answer,@Date)";
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = insert_jobseeker;
cmd.Parameters.Add(new SqlParameter("@Password", SqlDbType.VarChar, 50));
cmd.Parameters["@Password"].Value = txtPassword.Text;
cmd.Parameters.Add(new SqlParameter("@HintQuestion", SqlDbType.VarChar, 50));
cmd.Parameters["@HintQuestion"].Value = ddlQuestion.Text;
cmd.Parameters.Add(new SqlParameter("@Answer", SqlDbType.VarChar, 50));
cmd.Parameters["@Answer"].Value = txtAnswer.Text;
**cmd.Parameters.Add(new SqlParameter("@Date", SqlDbType.DateTime));
cmd.Parameters["@Date"].Value = System.DateTime.Now**
Run Code Online (Sandbox Code Playgroud)
我有错误
“ SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。”
有什么解决方案?