我最近在SQL中学习了参数化查询。我现在收到关于执行查询的日期的投诉
日历System.Globalization.GregorianCalendar中不支持字符串表示的DateTime。
当我得到查询时,我得到参数化查询字符串
SELECT * FROM Table WHERE field = @p_param
我需要得到的是调试它
SELECT * FROM Table WHERE field = "2012-03-12 14:09:00"
我该怎么做?我怀疑这很简单,但我看不到它!
正在使用以下内容添加datetime参数:
sql2.Parameters.Add("@p_UpdateTime", SqlDbType.DateTime).Value = DateTime.Parse(updateTime);
正在设置正常运行时间
String updateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ff");
答案 0 :(得分:1)
使用SQL Server Profiler(随所有sql server一起提供)。它将显示发送到SQL服务器的完整命令。
答案 1 :(得分:1)
打开Sql Server Profiler并跟踪对您的Sql Server执行的操作。请参阅有关如何使用该工具的基本tutorial。
答案 2 :(得分:0)
您可以像这样转换参数:
CONVERT(VARCHAR(19), @p_param, 120)
其中120是yyyy-mm-dd hh:mi:ss(24h)的转换代码。
答案 3 :(得分:0)
看起来你正在发送字符串值。由于DateTime.Format
根据当前的线程文化而发生变化,这是有问题的。
传递参数时尝试这样的事情:
DateTime dateParam = GetDateParam();
_sqlCommand.Parameters.Add(
new SqlParameter
{
DbType = DbType.Date,
ParameterName = "@p_param",
Value = dateParam
});
答案 4 :(得分:-1)
我现在已修复它,当我需要使用ss
时,我正在使用ff秒