如何从oracle数据库中的表中检索日期

时间:2015-03-18 09:49:32

标签: sql oracle

这似乎很简单。但我真的很喜欢我的工作。请帮忙。

我使用的是Oracle数据库,我的表中有一个名为load date的列,其中包含以下条目:

12/11/2014 1:50:23 PM
12/11/2014 1:53:03 PM
3/17/2015  7:23:53 AM
11/29/2014 3:53:20 AM

我希望从17月3日的表中检索记录。我该怎么做?

3 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

  

不带参数的TRUNC会从DATE

中删除小时,分钟和秒
SELECT * 
FROM YourTable 
WHERE TRUNC(LoadDate) = TO_DATE('03-17-2015', 'MM-DD-YYYY')

或者您可以使用以下内容:

SELECT * 
FROM YourTable 
WHERE LoadDate >= TO_DATE('2015-03-17', 'YYYY-MM-DD')
  AND LoadDate <  TO_DATE('2015-03-18', 'YYYY-MM-DD')

答案 1 :(得分:1)

对数据库中的列使用TRUNC会产生令人遗憾的效果,即TRUNC函数必须应用于表中每一行的特定字段(在本例中为LOAD_DATE)。这往往很慢。相反,我建议使用BETWEEN测试,如下所示:

SELECT *
  FROM YOUR_TABLE
  WHERE LOAD_DATE BETWEEN TO_DATE('17-MAR-2015 00:00:00', 'DD-MON-YYYY HH24:MI:SS')
                      AND TO_DATE('17-MAR-2015 23:59:59', 'DD-MON-YYYY HH24:MI:SS')

分享并享受。

答案 2 :(得分:0)

它可能适合您:

 select * from   YourTable where (extract(day  from LoadDate) =17 ) and (extract(month   from LoadDate) =3);