如何在oracle中获取日期部分

时间:2015-10-21 11:01:50

标签: oracle oracle11g

id  name date
1   AAA 12-01-15
2   BBB 19-09-12
3   CCC 23-07-10
4   DDD 06-10-01
5   EEE 08-11-05
6   FFF 18-04-99
7   GGG 07-08-12

我试过但是通过转换它是可能的但我不想转换它我想提取日期部分请帮帮我

我有一个日期字段的表格,数据类型我想从日期字段中提取日期

我的条件是我想获得等于sysdate的记录,即我想获取当天插入的记录,等于datepart

2 个答案:

答案 0 :(得分:1)

如果我理解正确,表中的'date'列具有DATE数据类型。如果是这样,那么以下内容应该得到你想要的东西:

SELECT t.*
  FROM YOUR_TABLE t
  WHERE TRUNC(t.DATE_FIELD) = TRUNC(SYSDATE)

当然,基于您问题中的数据,上述查询不会返回任何行,但如果表中的数据与SYSDATE的日期相同,则会返回它们。

(顺便说一下 - 由于DATE是一种数据类型,因此将它用作列的名称是一个坏主意。在这里我将其更改为DATE_FIELD)。

祝你好运。

答案 1 :(得分:1)

如果您的专栏是varchar,请使用此

select * from (
select '21-10-15' as dt from dual)
where to_date(dt,'dd-mm-yy') = trunc(sysdate)

如果您的列位于date类型,并且您只存储日期,而不是时间戳,则使用此列。

select * From (
select to_date('21-10-15','dd-mm-yy') as dt from dual)
where dt = trunc(sysdate)

如果您将列保存为日期和时间,请使用Bob的解决方案

select * From (
select to_date('21-10-15','dd-mm-yy') as dt from dual)
where trunc(dt) = trunc(sysdate)

我将列更改为dt。根据您的方便改变它。