gum*_*mpi 1 oracle date-arithmetic sql-date-functions
我在oracle上有关于日期函数的问题.
我有下表
statistic_table(
pages AS varchar(10),
date_created AS date
);
Run Code Online (Sandbox Code Playgroud)
我有以下sql
SELECT COUNT(*) FROM statistic_table WHERE date_created BETWEEN sysdate-5 AND sysdate-1
and
SELECT COUNT(*) FROM statistic_table WHERE date_created BETWEEN to_date('12-AUG-2011') AND to_date('16-AUG-2011');
Run Code Online (Sandbox Code Playgroud)
问题是,为什么它会返回不同的数字.假设sysdate-5返回12-aug-2011并且sysdate-1返回16-aug-2011
任何帮助将非常感激!
干杯,
sysdate - 5将为您提供当前时间的日期.因此,如果我在下午1点准确地运行它,查询将等同于:
select (*)
FROM statistic_table
WHERE date_created BETWEEN to_date('12-Aug-2011 13:00:00')
AND to_date('16-Aug-2011 13:00:00')
Run Code Online (Sandbox Code Playgroud)
而第二个查询是:
select (*)
FROM statistic_table
WHERE date_created BETWEEN to_date('12-Aug-2011 00:00:00')
AND to_date('16-Aug-2011 00:00:00')
Run Code Online (Sandbox Code Playgroud)
你应该尝试这样做:
select (*)
FROM statistic_table
WHERE date_created BETWEEN trunc(sysdate) -5
AND trunc(sysdate) -1
Run Code Online (Sandbox Code Playgroud)