如何获取包含参数的完整sql查询

时间:2012-03-12 14:11:07

标签: c# sql sql-server-2008 sqlparameters

我最近在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");

5 个答案:

答案 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秒