admin

Oracle在查询中仅从To_Date()获得时间?

sql

我有一个插入查询:

INSERT INTO THE_TABLE (Field_A) 
VALUES (TO_DATE('08/12/2011 08:35:42 AM','HH:MI:SS PM'))
WHERE Something = 'SomethingElse'

Field_A是日期字段。当我执行查询时,Field_A仍显示日期和时间。

有没有办法只抓住时间?

我尝试了To_Char(),但是随后它转换为字符串,并且该字段将不接受它。

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


阅读 235

收藏
2021-06-07

共1个答案

admin

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

您可以将其存储为其他内容,例如秒数,然后使用转换函数将其转换为时间。由于似乎TO_CHAR不需要一个数字并将其转换一次,因此您必须在应用程序端执行此操作。

因此,DATE无论如何我都会将其存储为避免混淆;只需在使用时忽略日期部分即可。

顺便说一句,这:

我尝试了To_Char(),但是随后它转换为字符串,并且该字段将不接受它。

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

2021-06-07