首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用ADO和SQL Server时未正确计算日期参数

使用ADO和SQL Server时未正确计算日期参数
EN

Stack Overflow用户
提问于 2011-09-10 04:53:55
回答 6查看 6.3K关注 0票数 1

我有以下SQL语句:

代码语言:javascript
运行
复制
SELECT 420, DueDate, ISNULL(Amount, 0) 
FROM Payments
WHERE CurveID = ? AND DueDate >= ?;

这是我使用Delphi2010和TADODataset执行的。除了子句DueDate >= ?的计算不正确之外,该语句可以正确执行。如果我为第二个参数传入Date()Now(),我会在DueDate字段中得到日期早于今天的返回值。

在SSMS中,如果我将date参数替换为格式为'2011-09-09‘的字符串,则可以成功运行此SQL查询:

代码语言:javascript
运行
复制
SELECT 420, DueDate, ISNULL(Amount, 0) 
FROM Payments
WHERE CurveID = 19 AND DueDate >= '2011-09-09';

然而,回到Delphi语言中,即使我将参数值设置为这种格式的日期的字符串形式,也会得到不正确的结果(可能是因为TADODataset正确地将字符串转换回了日期)。

除了用硬编码到SQL中的日期构建动态SQL之外,我必须做什么才能正确地计算它?

EN

Stack Overflow用户

发布于 2011-09-10 04:58:43

请尝试以下操作:

代码语言:javascript
运行
复制
AND DueDate >= CONVERT(datetime,?);
票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7367336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档