如何正确地将日期时间从c#传递到sql?我有一个日期时间格式的表:2011-07-0115:17:33.357当我在对象上执行.ToString()时,我正在使用c#DateTime我得到一个格式为:04/07的日期时间/201106:06:17我想知道我是如何正确传递正确的日期时间的,因为当我在我们的代码中运行SQL时它不起作用(即选择正确的日期时间)。我不能使用SQL分析器。这是代码://查看用户是否在最后指定的时间内有任何活动publicboolIsUserActivitySinceSuppliedTime(intuserId,DateTimesince){//获取自指定日期时间以来的所有内容[通常是5小时,因为这是//如何long会话持续stringsql="SELECT*FROMtbl_webLoggingWHEREuserid=@useridANDDateAdded>@sinceDateTime";SqlParametersinceDateTimeParam=newSqlParameter("@sinceDateTime",SqlDbType.DateTime);sinceDateTimeParam.Value=因为;SqlCommand命令=newSqlCommand(sql);命令.Parameters.AddWithValue("@userid",userId);命令.Parameters.Add(sinceDateTimeParam);使用(SqlDataReaderDataReader=GetDataReader(command)){if(DataReader.HasRows){returntrue;}else{返回错误;}}}UPDATE*******************我在数据上运行了以下内容:SELECT*FROMtbl_webLoggingWHEREuserid=1ANDDateAdded>'2011-07-0107:19:58.000'和SELECT*FROMtbl_webLoggingWHEREuserid=1ANDDateAdded&g吨;'04/07/201107:19:58'一个返回53条记录,另一个返回69条记录这怎么会发生?当我将DateTime(04/07/201107:19:58)从C#传递到SQL时,根本没有记录出现!您已经使用DateTime参数和DateTime值正确地完成了它,所以它应该已经可以工作了。忘记ToString()-因为这里没有使用它。如果有差异,很可能是两种环境之间的精度不同;也许选择舍入(秒,也许?)并使用它。还要记住UTC/local/unknown(DB没有“键入”日期的概念;.NET有)。我有一个日期时间格式的表:2011-07-0115:17:33.357请注意,数据库中的日期时间不是任何此类格式;这只是您的查询客户端向您展示善意的谎言。它存储为一个数字(甚至是一个实现细节),因为人类有一种奇怪的倾向,不会意识到您显示的日期与40723.6371916281相同。愚蠢的人类。通过简单地将其视为“日期时间”,您应该没有任何问题。我有很多涉及C#和SqlServer的问题。我最终执行了以下操作:在SQLServer上,我使用DateTime列类型在c#上,我使用.ToString("yyyy-MM-ddhh:mm:ss")方法还要确保所有计算机都在同一时区运行。关于你得到的不同结果集,你的第一个例子是“7月1日”,而你的第二个例子是“7月4日”......另外,第二个例子也可以解释为“4月7日”,这取决于你的服务器本地化配置(我的解决方案不受此问题影响)。以上就是C#学习教程:如何正确地将c#的日期时间传递给sql?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
