首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Advantage SQL中的时间比较

Advantage SQL中的时间比较
EN

Stack Overflow用户
提问于 2015-02-27 16:03:57
回答 2查看 874关注 0票数 0

试图在advantage查询中进行时间比较。还没有在Advantage文档中找到答案。看起来应该很简单。

表的定义是:

代码语言:javascript
复制
CREATE TABLE TBL ( 
      ID AutoInc,
      Date Date,
      [T] Time
)

基于这本关于谷歌图书的书,我想我应该能够与如下所示的文字进行比较:

代码语言:javascript
复制
SELECT * FROM TBL WHERE [T] > '9:00:00 AM'

但这会让

代码语言:javascript
复制
Error 7200:  AQE Error:  State = S0000;   NativeError = 2124;  [iAnywhere Solutions][Advantage SQL Engine]Invalid operand for operator: > [Invalid TIME] -- Location of error in the SQL statement is: 27
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-27 16:38:36

您应该始终使用时间‘’HH:MM:SS‘(24h)或时间’‘HH:MM:SS’(12h)文字格式:

代码语言:javascript
复制
SELECT * FROM TBL WHERE [T] > TIME'09:00:00 am'

我认为您得到了2124错误,因为您使用的是大写am/pm符号,或者是因为您没有使用前导零。

另请参阅:

literals.htm

票数 2
EN

Stack Overflow用户

发布于 2015-02-27 16:55:43

从SQL文本下的文档(在ADS帮助文件中,在Advantage‘SQL,第二部分- Advantage,第11章- Advantage介绍,SQL文字)

时间文字以单引号括在一起,并使用以下四种格式之一: HH:MM、HH:MM AM (或PM)、HH:MM:SS或HH:MM:SS AM (或PM)。如果文字中缺少AM (或PM),则假定24小时时间。时间文字的AM/PM部分不区分大小写。以下是有效的时间文本: “19:10” ‘凌晨4点43分’ '9:00:45‘ “22:19:59”

使用此表定义和数据:

代码语言:javascript
复制
create table #temp (ID AutoInc,
                    Dt Date,
                    Tm Time);

insert into #temp (Dt, Tm) values (CurDate() - 1, CurTime());
-- Wait to make sure time changes slightly
insert into #temp (Dt, Tm) values (CurDate(), CurTime());

select * from #temp;

/* Output:
    ID   Dt           Tm        
    --   ----------   -----------
    1    02/26/2015   11:50:22 AM 
    2    02/27/2015   11:51:02 AM
*/

以下查询成功地根据正确的时间(当然,根据数据的适当时间调整)检索正确的行:

代码语言:javascript
复制
select * from #temp where Tm = '11:50:22 AM'

使用ARC32对带有本机ADT表类型的Advantage 10.10进行测试。

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

https://stackoverflow.com/questions/28769321

复制
相关文章

相似问题

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