我有一个相当直接的查询,它过滤了where子句中的特定日期,如下所示:
declare @a_date date
set @a_date = '2013-09-17'
select * from table t where t.date = @a_date
以上查询需要大约30分钟才能运行。
将查询更改为以下内容只需几秒钟即可运行:
declare @a_date date
declare @string_date varchar(8)
set @a_date = '2013-09-17'
set @string_date = convert(varchar(8), @a_date, 112)
select * from table t where t.date = @string_date
我正在使用RapidSQL和iSql在Sybase ASE 12中执行此查询并观察相同的行为。根据Sybase日期转换,兼容的日期字符串格式将自动转换为运算符的RHS中的日期类型。
字段t.date是日期时间数据类型。
为什么会发生这种情况的任何建议?