如何更改Oracle Select中的日期类型?

如何更改Oracle Select中的日期类型?,oracle,types,Oracle,Types,我通常使用PostgreSQL,但我目前在Oracle中使用 我需要在queryselect中更改列的数据类型,在PostgreSQL中,我通常这样做: select 1::varchar from table 我可以在甲骨文中做这件事吗 致以最诚挚的问候,转换为varchar select to_char(Field) from table 截断varchar select substr(field, 1, 1) from table 正如@Michael Pakhantsov指出的

我通常使用PostgreSQL,但我目前在Oracle中使用

我需要在queryselect中更改列的数据类型,在PostgreSQL中,我通常这样做:

select 1::varchar from table
我可以在甲骨文中做这件事吗

致以最诚挚的问候,

转换为varchar

 select to_char(Field) from table
截断varchar

 select substr(field, 1, 1) from table

正如@Michael Pakhantsov指出的,to_char用于转换为字符串。同样,将字符串分别转换为日期和时间戳时,to_date和to_timestamp是标准。但是,例如,如果您发现需要执行从varchar2到raw的更奇特的转换,那么cast就是您的朋友:

要字符串的数字:

select cast(field as varchar2(30)) from table;
原始字符串:

select cast(field as raw(16)) from table;
像@Allan,我喜欢使用cast,因为它可以从多种类型转换到多种类型。 然而,正如官方文件所说

CAST不支持LONG、LONG RAW、任何LOB数据类型或Oracle提供的类型

因此,它不能用于转换为CLOB,例如,Oracle将抛出

ORA-00932:不一致的数据类型:应为-已获取CLOB


在使用to_char时,几乎总是最好指定一个显式格式,例如to_char Column,“yyyy-mm-dd”,以避免不同的意外结果,具体取决于NLS设置。对于编辑,我同意它的可读性更好。我是新来的,所以仍然习惯于格式化工具。