将日期字段拆分为时间和日期甲骨文



我在Oracle 10.6上TIME_TABLE了一个表。 此表上有一个名为 Start_Date 的字段。

Item       Start_Date
 1         3/13/2012 8:00:00 AM
 2         4/2/2012 1:30:31 PM

我只想从Start_Date字段获取时间信息,例如"上午 8:00:00"。因为我想确定时间间隔

CASE
WHEN   START_DATE between TO_DATE ('07:00 AM','HH:MI:SS AM') and  TO_DATE('11:59',' HH:MI:SS AM') THEN 'TIME1'

但它不起作用!我该怎么做?

谢谢

像这样尝试:

CASE
WHEN to_char(start_date, 'hh24miss') BETWEEN '070000' AND '115900'

请注意,这可能会阻止数据库在start_date上使用索引

您的原始查询也非常接近 - 正如 @A.B.Cade 提到的索引性能,您可以测试它与:

SELECT CASE
       WHEN START_DATE BETWEEN TO_DATE (
                                TO_CHAR (START_DATE, 'MM/DD/YYYY')
                                || ' 07:00:00',
                                'MM/DD/YYYY HH24:MI:SS'
                            )
                        AND  TO_DATE (
                                 TO_CHAR (START_DATE, 'MM/DD/YYYY')
                                 || ' 11:59:00',
                                 'MM/DD/YYYY HH24:MI:SS'
                             )
       THEN
           'TIME1'
   END

相关内容

  • 没有找到相关文章

最新更新