我在 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/