oracle 拆分dt列值,以便在C#中仅接受月和年

9w11ddsr  于 7个月前  发布在  Oracle
关注(0)|答案(1)|浏览(72)

我有一个DataTable列,它有像01-04-2023 00:00:00这样的值。我只想从该列中得到04-2023,并在新的DataTable中更新。我如何将其拆分为DataTable
Dt具有名为DATA_WITH_MONTH_YEAR的列。

更新

下面是datatable列的图像


的数据
下面是查询:

INSERT INTO TBL_IPCOLO_BILLING_MST (
    POLITICAL_STATE_NAME,
    POLITICAL_STATE_CODE,
    RFCDATE,
    RFS_DATE,
    RFE1_DATE, 
    SITE_DROP_DATE,
    IP_COLO_SITEID,
    MW_INSTALLED,
    DG_NONDG,
    EB_NONEB,                                        
    ID_OD_COUNTCHANGE,
    ID_OD_CHANGEDDATE,
    RRH_COUNTCHANGE,
    RRH_CHANGEDDATE,
    TENANCY_COUNTCHANGE,
    TENANCY_CHANGEDDATE,                                        
    SAP_ID,
    CREATED_BY,
    RFS_DATE_5G,
    DROP_DATE_5G,
    OLT_COUNT,
    OLT_CHANGE_DATE,
    DIESEL_DOWNTIME_MINUTES,
    OVERALL_INFRA_OUTAGE_MINUTES,
    DIESEL_DOWNTIME_MIN_MY,
    OVERALL_INFRA_OUTAGE_MIN_MY) 

VALUES 
    (:POLITICAL_STATE_NAME,
    :POLITICAL_STATE_CODE,
    :RFCDATE,
    :RFS_DATE,
    :RFE1_DATE,
    :SITE_DROP_DATE,
    :IP_COLO_SITEID,
    :MW_INSTALLED,
    :DG_NONDG,
    :EB_NONEB,
    :ID_OD_COUNTCHANGE,
    :ID_OD_CHANGEDDATE,
    :RRH_COUNTCHANGE,
    :RRH_CHANGEDDATE,
    :TENANCY_COUNTCHANGE,
    :TENANCY_CHANGEDDATE,                                        
    :SAP_ID,
    :CREATED_BY,
    :RFS_DATE_5G,
    :DROP_DATE_5G,
    :OLT_COUNT,
    :OLT_CHANGE_DATE,
    :DIESEL_DOWNTIME_MINUTES,
    :OVERALL_INFRA_OUTAGE_MINUTES,
    :TO_CHAR(DIESEL_DOWNTIME_MINUTES_MON_YEAR, 'MM:YYYY') AS DIESEL_DOWNTIME_MINUTES_MON_YEAR,
    :OVERALL_INFRA_OUTAGE_MINUTES_MON_YEAR
    )

字符串

ljo96ir5

ljo96ir51#

使用正确存储的日期或时间戳数据表,您无法在Oracle中分隔日期和时间。datetimestamp数据表将始终包含这两个组件。使用to_char命令控制选择该数据时用于显示该数据的格式。

select 
    to_char(my_date_column, 'MM-YYYY') "MyDateColumn" 
from my_table;

字符串
与您的情况一样,如果日期数据不正确地存储为文本,则必须先将其转换为日期,然后才能将其转换回所需格式的文本:

select 
    to_char(
        to_date(my_date_column,'MM-DD-YYYY HH24:MI:SS')
    , 'MM-YYYY') "MyDateColumn" 
from my_table;


请注意,文本列中“date”格式的任何变化都会破坏您的查询,因为输入将不匹配to_date函数调用中的格式过滤器。我的建议-如果您有机会的话-是首先创建这些正确的日期或时间戳列并正确存储数据。迟早,将日期存储为字符串而不进行输入验证将导致数据损坏,您将不得不这样做。

相关问题