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

本文关键字:sql 查询 参数 包含 何获取 获取 | 更新日期: 2023-09-27 18:27:25

我最近加入了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");

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

使用SQL Server Profiler(随所有SQL Server一起提供)。它将显示发送到SQL server的完整命令。

打开Sql Server Profiler并跟踪针对Sql Server执行的操作。请参阅有关如何使用该工具的基本教程。

您可以这样转换参数:

CONVERT(VARCHAR(19), @p_param, 120)

其中120是yyyy-mm-dd hh:mi:ss(24小时)的转换代码。

看起来像是在发送字符串值。这是有问题的,因为DateTime.Format根据当前线程区域性而变化。

在传递参数时尝试这样的操作:

DateTime dateParam = GetDateParam();
_sqlCommand.Parameters.Add(
    new SqlParameter
    {
        DbType = DbType.Date,
        ParameterName = "@p_param",
        Value = dateParam 
    });

我现在已经修复了它,当我需要使用ss 时,我使用了ff几秒钟