Sql Oracle是否在查询中仅获取从开始到日期()的时间?

Sql Oracle是否在查询中仅获取从开始到日期()的时间?,sql,oracle,to-date,Sql,Oracle,To Date,我有一个插入查询: INSERT INTO THE_TABLE (Field_A) VALUES (TO_DATE('08/12/2011 08:35:42 AM','HH:MI:SS PM')) WHERE Something = 'SomethingElse' 字段A是一个日期字段。当我执行查询时,字段A仍然显示日期和时间 有没有办法只抓住时间 我尝试了_Char(),但是它会转换为字符串,而字段不会接受它 我也尝试过使用日期('08:35:42 AM','HH:MI:SS PM'),但

我有一个插入查询:

INSERT INTO THE_TABLE (Field_A) 
VALUES (TO_DATE('08/12/2011 08:35:42 AM','HH:MI:SS PM'))
WHERE Something = 'SomethingElse'
字段A是一个日期字段。当我执行查询时,字段A仍然显示日期和时间

有没有办法只抓住时间

我尝试了_Char(),但是它会转换为字符串,而字段不会接受它


我也尝试过使用日期('08:35:42 AM','HH:MI:SS PM'),但这也不起作用,它仍然会在表中显示日期和时间。

如果您的字段是日期字段,您将始终拥有日期时间的日期部分

您可以将其存储为其他内容,例如秒数,并使用转换函数将其转换为时间。因为看起来TO_CHAR不会接受一个数字并一次转换它,所以您必须在应用程序端执行此操作

所以我只是将它存储为
日期
,以避免混淆;只需在使用时忽略日期部分

顺便说一下,这是:

我尝试了_Char(),但是它会转换为字符串,而字段不会接受它

不太正确,因为正确格式的字符串会隐式转换为
DATE
s

TO_DATE('08:35:42 AM','HH:MI:SS PM')
这不起作用的原因是因为这不是一个完整的日期。即使使用“截止日期”('07/12/2011','MM/DD/YYYY'),Oracle也会存储日期和时间,但会将时间的所有组成部分置为零。所以实际存储的日期是2011年12月7日HH:MI:SS

如果您想单独存储时间组件,它应该是一个varchar字段,您需要将其添加到日期部分以获得完整的日期。例如

Select to_date(
          to_char(date_field_stored_as_date,'DD-MON-YYYY') || 
          ' ' ||
          to_char(time_field_stored_as_varchar),
         'DD-MON-YYYY HH24:MI:SS'    
       )