【问题标题】:Create table with calculated column使用计算列创建表
【发布时间】:2017-12-09 14:57:55
【问题描述】:

我想创建一个三列的表:

START_DATE|END_DATE|TOTAL_TIME 

START_DATEEND_DATE 都应该是 dates。 TOTAL_TIME 应该使用这两列来计算。如何创建表格?

【问题讨论】:

    标签: sql oracle ddl calculated-columns create-table


    【解决方案1】:

    您可以使用as 关键字创建计算列。在 Oracle 中减去两个 dates 会给你天数的差异。然后,您可以轻松地将其转换为您希望的任何单位(例如,乘以 24 以获得以小时为单位的持续时间):

    CREATE TABLE my_table (
        id NUMBER PRIMARY KEY,
        start_date DATE,
        end_date DATE,
        total_time NUMBER AS (end_date - start_date) -- This is in days
    );
    

    【讨论】:

    • 非常感谢您的回复。其实我想得到 total_time=start_date-end_date 。我想在第三列中得到这两列之间的区别。该怎么做?
    • @kkl 把它翻过来 :-) 但请注意,start_date-end_date 将永远是负面的
    • 嗨,我的 END_DATE 列的值类似于 2017-07-09 10:30:00,START_DATE 的值类似于 2017-07-09 09:30:00。我想从 END-DATE 中扣除 START_DATE 并在 TOTAL_TIME 中得到 1.30(小时)的结果。如何得到这个结果?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 1970-01-01
    • 2021-12-08
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多