Oracle相当于SQL函数'convert'

Der*_*rek 4 sql sql-server oracle

例如在SQL中我有:

CONVERT(VARCHAR(10), mydate, 120)
CONVERT(DECIMAL(18,2), cost)
Run Code Online (Sandbox Code Playgroud)

在Oracle中是否有相同的功能?

OMG*_*ies 6

这在TSQL中:

CONVERT(VARCHAR(10), mydate, 120)
Run Code Online (Sandbox Code Playgroud)

...返回一个字符串,所以你应该使用TO_CHAR:

TO_CHAR(mydate, 'yyyy-mm-dd hh24:mi:ss')
Run Code Online (Sandbox Code Playgroud)

如果值不是Oracle DATE数据类型,则使用相同的格式掩码,使用TO_DATE:

TO_DATE(mydate, 'yyyy-mm-dd hh24:mi:ss')
Run Code Online (Sandbox Code Playgroud)

...或者无论如何,在处理时态数据类型时更喜欢显式数据类型转换.


这在TSQL中:

CONVERT(DECIMAL(18,2),cost)
Run Code Online (Sandbox Code Playgroud)

...需要使用CAST功能:

CAST(cost AS DECIMAL(18,2))
Run Code Online (Sandbox Code Playgroud)