c# - 错误 : 'Operand type clash: date is incompatible with int ' on date type

标签 c# sql-server

我在 SQL Server 中有一个包含 date 数据类型列的表。

我想选择具有 ExpireDate >= Datetime.Now 的记录

我使用存储过程。

ALTER PROCEDURE [dbo].[Ad_SelectByCommand]
@Where varchar(max),
@SQLSort varchar(max)
AS
DECLARE @query varchar(max);

    IF @Where <> N'' SET @Where = N' WHERE ' + @Where
    IF @SQLSort <> N'' SET @SQLSort = N' ORDER BY ' + @SQLSort

SET @query = 'SELECT [Id], [Name], [Description], [Image], [ExpireDate], [Cost], [IsPayment] FROM [dbo].[Ad]' + @Where + @SQLSort

EXEC(@query)

并在 C# 中使用它:

var list = clsAdFactory.GetAllByCommand("ExpireDate>=" + DateTime.Now.ToShortDateString());

var list = clsAdFactory.GetAllByCommand("ExpireDate>=" + DateTime.Now.ToString("dd/MM/yyyy"));

但是我得到了错误

Operand type clash: date is incompatible with int

最佳答案

用引号括起日期:

string whereClause = string.Format(@"ExpireDate >= '{0}'", DateTime.Now.ToShortDateString());
var list = clsAdFactory.GetAllByCommand(whereClause);

关于c# - 错误 : 'Operand type clash: date is incompatible with int ' on date type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574051/

相关文章:

c# - 从 sql server 数据库中检索数据的正确代码

c# - 无法使用跳跃式手指破坏物体

sql - 检查sql server中文件是否存在?

sql-server - SQL Server : permissions to read database diagrams for user that has 'read-only' access

C# 从二叉搜索树创建 TreeView

c# - 如何调用启用 SSL 的 Web Api?

c# - 简单的制表题

sql-server - decimal 和 bigint 除法时如何定义小数位数?

sql - 如何使用 SQL Server 中的 View 检查可用库存并将其分配给订单

sql-server - sp_msforeachdb 发生错误时需要捕获数据库名称