将NVARCHAR转换为DATE格式DD/MM/YYYY

2020-08-27 17:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当尝试将字段从NVARCHAR转换为DATE时,出现以下错误:

在30 ms 188 µs中无法从" @ A11_HISTO_VTA"执行'SELECT TO_CHAR(TO_DATE(" FECHA",'MM/DD/YYYY'),'MM/DD/YYYY')'。 [314]:数字溢出:搜索表错误:[6944] AttributeEngine:数字计算溢出;字符串格式(daydate [here] daydate(字符串" FECHA",字符串'MM/DD/YYYY'),字符串'MM/DD/YYYY'),FECHA = '24/11/2017'[string]; checkNull false


使用以下SQL命令执行操作:

-从" @ A11_HISTO_VTA"中选择TO_CHAR(TO_DATE(" FECHA",'MM/DD/YYYY'),'MM/DD/YYYY')
 -从" @ A11_HISTO_VTA"中选择TO_DATE(" FECHA"," MM/DD/YYYY")
 -从" @ A11_HISTO_VTA"中选择TO_VARCHAR(TO_DATE(FECHA,'YYYYMMDD'),'YYYY-MM-DD')

 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


当尝试将字段从NVARCHAR转换为DATE时,出现以下错误:

在30 ms 188 µs中无法从" @ A11_HISTO_VTA"执行'SELECT TO_CHAR(TO_DATE(" FECHA",'MM/DD/YYYY'),'MM/DD/YYYY')'。 [314]:数字溢出:搜索表错误:[6944] AttributeEngine:数字计算溢出;字符串格式(daydate [here] daydate(字符串" FECHA",字符串'MM/DD/YYYY'),字符串'MM/DD/YYYY'),FECHA = '24/11/2017'[string]; checkNull false


使用以下SQL命令执行操作:

-从" @ A11_HISTO_VTA"中选择TO_CHAR(TO_DATE(" FECHA",'MM/DD/YYYY'),'MM/DD/YYYY')
 -从" @ A11_HISTO_VTA"中选择TO_DATE(" FECHA"," MM/DD/YYYY")
 -从" @ A11_HISTO_VTA"中选择TO_VARCHAR(TO_DATE(FECHA,'YYYYMMDD'),'YYYY-MM-DD')

 
付费偷看设置
发送
4条回答
渐行渐远_HoldOn
1楼 · 2020-08-27 18:09.采纳回答

根据您的评论,对我的要求是这样的:

从具有DAY,MONTH和YEAR的三个单独字符串列的表中创建一个SQL-date列。

对于DAY和MONTH,这些列可以包含一位和两位数的值。

由于TO_DATE()函数需要两位数的值进行转换(格式掩码DD和MM),因此这些值需要

幸运的是,SQL附带了LPAD()函数。

总而言之,可以像这样实现要求 :

,数据为(选择
                         一天为" 1"
                      ," 03"作为月份
                      ," 2017"作为年份
                 从假人
                 全部合并
                 选择
                        当日为" 12"
                      ," 1"作为月份
                      ," 2018"作为年份
                 来自假人),
 data_form as(选择
 lpad(day,2,'0')as day,
 lpad(month,2,'0')作为月份,
 年
               从数据)
 选择
     *
    ,to_date(day || month || year,'DDMMYYYY')as SQLDATE
 从
      data_form
 
木偶小白
2楼-- · 2020-08-27 18:28

要将字符串(大概是" FECHA"是字符串列)转换为日期列,您只需使用TO_DATE函数。

一旦数据为 作为实际的日期数据类型,格式通常由客户端程序完成。

我想说的是," FECHA"列来自何处以及如何创建。 到目前为止,在数据类型转换的上下文中,我从未见过"数字溢出"错误,因此,必须对此进行更多介绍。

shere_lin
3楼-- · 2020-08-27 18:13

嗨, Lars Breddemann

是的,请使用 TO_DATE 函数,但是它具有上述相同的错误," DATE" 字段具有数据类型 NVARCHAR ,我现在使用的SQL语法如下:

但是,当使用这种方式时,天数小于天数 10 时,请不要在数字前放置 0 ,例如,如果天数是 day 1 日期格式的结果应为 01


从" @ A11_HISTO_VTA"中选择TO_DATE(ANHO ||'-'|| MES ||'-'||| DIA <10 THEN'0'|| DIA ELSE DIA END,'YYYY-MM-DD'的情况)  "
 
黑丝骑士
4楼-- · 2020-08-27 18:17

非常感谢您的帮助 Lars Breddemann

一周热门 更多>