Date 使用混合日期格式的HANA中的to_日期
如果原点中有不同的日期格式,您可以做什么 我有一个例子,我们使用Date 使用混合日期格式的HANA中的to_日期,date,format,hana,to-date,Date,Format,Hana,To Date,如果原点中有不同的日期格式,您可以做什么 我有一个例子,我们使用to_date函数从表中获取信息,但我得到了一个错误,因为有些记录的日期格式是YYYY-DD-MM而不是YYYY-MM-DD 如何对此应用统一的解决方案?要处理这种情况(任意文本应转换为结构化日期值),我可能会使用正则表达式 这样,您就可以选择适合您想要支持的格式的记录集,并对这些记录执行类型转换 例如: create column table date_vals (dateval nvarchar (4000), date_val
to_date
函数从表中获取信息,但我得到了一个错误,因为有些记录的日期格式是YYYY-DD-MM
而不是YYYY-MM-DD
如何对此应用统一的解决方案?要处理这种情况(任意文本应转换为结构化日期值),我可能会使用正则表达式
这样,您就可以选择适合您想要支持的格式的记录集,并对这些记录执行类型转换
例如:
create column table date_vals (dateval nvarchar (4000), date_val date)
insert into date_vals values ('2018-01-23', NULL);
insert into date_vals values ('12/23/2016', NULL);
select dateval, to_date(dateval, 'YYYY-MM-DD') as SQL_DATE
from date_vals
where
dateval like_regexpr '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}'
union all
select dateval, to_date(dateval, 'MM/DD/YYYY') as SQL_DATE
from date_vals
where
dateval like_regexpr '[[:digit:]]{2}/[[:digit:]]{2}/[[:digit:]]{4}';
这种方法还提供了一个很好的选项来检查不匹配的记录,并可能提出额外的所需模式。要处理这种情况(任意文本应转换为结构化日期值),我可能会使用正则表达式
这样,您就可以选择适合您想要支持的格式的记录集,并对这些记录执行类型转换
例如:
create column table date_vals (dateval nvarchar (4000), date_val date)
insert into date_vals values ('2018-01-23', NULL);
insert into date_vals values ('12/23/2016', NULL);
select dateval, to_date(dateval, 'YYYY-MM-DD') as SQL_DATE
from date_vals
where
dateval like_regexpr '[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}'
union all
select dateval, to_date(dateval, 'MM/DD/YYYY') as SQL_DATE
from date_vals
where
dateval like_regexpr '[[:digit:]]{2}/[[:digit:]]{2}/[[:digit:]]{4}';
这种方法还提供了一个很好的选项来检查不匹配的记录,并可能提出其他所需的模式。为什么不在选择测试不同正则表达式的位置时使用case,然后使用to_date以正确的格式返回日期呢 这将避免使用union all和2个select语句 您可以在一个附加的联合中添加更多的“格式”,而无需更多的“选择”
除非like_regexpr只在where子句中起作用(我必须承认我从未尝试过该函数)。在选择要测试不同正则表达式的位置时,为什么不使用case,然后使用to_日期以正确的格式返回日期 这将避免使用union all和2个select语句 您可以在一个附加的联合中添加更多的“格式”,而无需更多的“选择”
除非like_regexpr只在where子句中起作用(我必须承认我从未尝试过该函数)。如何解决这个问题?当然,如果数字大于12,则不可能是一个月,但如果您看到2018-03-02,则可以是双向的。表中是否有第二个字段定义所使用的格式?如果没有它,你就很困难了。请记住,如果它是系统中的日期格式,那么它的显示方式并不重要。但是,如果系统将其存储为字符串数据,那么是的,您确实有一个无法解决的问题。如何解决这个问题?当然,如果数字大于12,则不可能是一个月,但如果您看到2018-03-02,则可以是双向的。表中是否有第二个字段定义所使用的格式?如果没有它,你就很困难了。请记住,如果它是系统中的日期格式,那么它的显示方式并不重要。但是,如果系统将其存储为字符串数据,则是的,您确实存在无法解决的问题。这似乎是对我的答案的评论,而不是对问题的单独回答。是的,但我找不到将其作为评论添加到您的首字母中的方法(我的声誉可能还不允许我这样做)。这似乎是对我答案的评论,而不是对问题的单独回答。是的,但我找不到方法将其作为评论添加到您的首字母中(我的声誉可能还不允许我这样做)。