双表支持日期格式如何?

时间:2018-04-02 10:52:22

标签: oracle oracle11g oracle10g

双表类型格式为varchar2(1),那么如何支持日期功能呢。

EX:

SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL;

1 个答案:

答案 0 :(得分:2)

DUAL表只有一列 - dummy varchar2(1)和一行,其值为'X'

所以,如果你查询

select dummy from dual为您提供

| DUMMY |
|-------|
|     X |

在查询SELECT EXTRACT(MONTH FROM SYSDATE) FROM DUAL;中,双表只是作为锚表运行查询以获取单行,因为Oracle尚未提供普通的select子句(select 'yourname' as name;)可在SQL Server和许多其他数据库中使用。

您应该知道,无论表中列的数量和类型如何,您始终可以运行查询,从中选择函数/字符串/数字等,包括或排除这些列。

例如:如果您的架构中有EMPLOYEE表,则您知道此查询完全有效,尽管select列表中没有其他列。

dual上运行此查询的唯一区别是,它将返回从函数(EXTRACT(MONTH FROM SYSDATE))返回的值,而不是1行,显示EMPLOYEES中包含的行数。 1}}表。除非您实际查询员工表,否则您会发现这对您没用。

SELECT EXTRACT(MONTH FROM SYSDATE) as mon FROM EMPLOYEES;

MON
--
4
4
4
4
4
4
..
..

因此,您需要一个标准表,它始终返回一行和一列或多列,这在Oracle中DUAL的情况下暂时存在。