Oracle db在特定日期之间获取值

时间:2014-01-14 08:44:08

标签: sql oracle

我的oracle数据库中有DATETIME字段,如图所示

enter image description here

我正在尝试创建一个在特定日期之间返回内容的查询,但此查询不会返回任何内容。

 SELECT * 
 FROM tbl_meter 
 WHERE TO_DATE(DATETIME,'DD/MM/YYYY') BETWEEN '%s' AND '%s'

我错过了什么?

修改

SELECT * FROM tbl_meter WHERE DATETIME BETWEEN '15/01/2014' AND '07/01/2014'

enter image description here

3 个答案:

答案 0 :(得分:2)

看起来你两次使用相同的参数。我希望你有

select * 
from   tbl_meter 
where  to_date(datetime, 'DD/MM/YYYY') between to_date('%s1', 'DD/MM/YYYY') and to_date('%s2', 'DD/MM/YYYY')

答案 1 :(得分:2)

SELECT * 
FROM tbl_meter 
WHERE TRUNC(DATETIME) BETWEEN to_date('%s','DD/MM/YYYY') AND to_date('%s','DD/MM/YYYY');

假设DATETIME属于DATE数据类型。

如果它是TIMESTAMP数据类型,那么

SELECT * 
FROM tbl_meter 
WHERE TRUNC(CAST(DATETIME AS DATE)) BETWEEN to_date('%s','DD/MM/YYYY') AND to_date('%s','DD/MM/YYYY');

如果是VARCHAR,那么

SELECT * 
FROM tbl_meter 
WHERE TRUNC(To_DATE(DATETIME,'Dd/MM/YYYY HH24:MI:SS.FF6')) BETWEEN to_date('%s','DD/MM/YYYY') AND to_date('%s','DD/MM/YYYY');

答案 2 :(得分:-1)

试试这种方式

SELECT * 
FROM tbl_meter 
WHERE TO_DATE(DATETIME,'DD/MM/YYYY') >='%s' AND TO_DATE(DATETIME,'DD/MM/YYYY') <'%s'