首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于精确匹配的where子句中的Sybase (ASE) DATETIME字段

用于精确匹配的where子句中的Sybase (ASE) DATETIME字段
EN

Stack Overflow用户
提问于 2016-07-23 00:04:24
回答 2查看 690关注 0票数 0

我正在尝试将一个日期时间值传递给一个存储的proc查询,在该查询中将根据一个列进行检查,该列也是一个日期时间字段。

举个例子,我有一个表,它包含:

代码语言:javascript
复制
ProductID int
ProductName varchar(20)
InsertDate DateTime

现在,我编写了一个存储过程:

代码语言:javascript
复制
Create proc usp_GetProductsByInsertDate
@input_insertDate datetime
as
select * from Products where InsertDate = @input_insertDate

现在,如果我通过@input_insertDate = '07/01/2016 06:25:15 PM',它应该会给我带来当时插入的产品列表,但这不会发生。我可能需要将返回结果的代码放在下面:

代码语言:javascript
复制
select * from Products where InsertDate >= @input_insertDate

我想在where claue字段中使用"date and time“。我能用这个吗?这可能是一个愚蠢的问题,但我想知道为什么它不工作。请告诉我怎么做。

EN

回答 2

Stack Overflow用户

发布于 2016-07-23 21:22:20

您是否可以检查目标列InsertDate中的值是否包含预期匹配行的毫秒(> 0)。一些默认设置中的数据库IDE隐藏了毫秒(您的@input_insertDate没有毫秒),这可能会导致这样的混乱。您的查询在我看来很好,您可以对您期望的行执行datepart(ms, InsertDate)来检查。

票数 0
EN

Stack Overflow用户

发布于 2016-07-30 00:00:38

我认为问题出在执行存储的proc时,将日期作为字符串传递到查询或参数中。看起来它不像是日期时间精确匹配的字符串值。当date对象在过程内部传递时,它将匹配并返回结果,即,如果我们在一个表中查询具有"datetime“的字段,将其赋给一个变量,并将该变量传递给下一个查询以进行精确匹配,那么它就可以工作。是不是很奇怪?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38530934

复制
相关文章

相似问题

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