我在各种类型的列上连接两个表时遇到问题(出现错误转换数据类型varchar
到numeric
消息)。
加入逻辑必须是这样的:
ON LC_YEAR (decimal(4,0), null)=DATE (datetime, null)
尝试了各种转换,但失败了。有关转换应该如何的任何想法?
非常感谢,
收率
答案 0 :(得分:0)
LC_YEAR只是一个包含年份(四位数)的列,日期的格式为:mm / dd / yyyy hh:mm:ss:mmm。我所要做的就是在这两列上加入表格 - 也许,确实是从DATE列中提取年份(但是年(DATE)函数也不起作用)。实际上,消息和列格式之间存在矛盾,但我看到了表格属性中的格式。 谢谢!
答案 1 :(得分:0)
对此的解决依赖于确定每个字段的实际数据类型。
您已指示LC_YEAR为十进制且DATE
为日期时间;
但你也指出了#34;格式" DATE
的{{1}}是mm / dd / yyyy hh:mm:ss:mmm如果数据类型是datetime则格式无关紧要,如果该字段是varchar则格式相关。所以可用的信息有点令人困惑。以下是转换的一些想法。
`LC_YEAR` `DATE`
data Type data type
decimal datetime LC_YEAR = YEAR(`DATE`)
varchar datetime LC_YEAR = CAST(YEAR(`DATE`) AS VARCHAR)
varchar varchar LC_YEAR = CAST(YEAR(str_to_time(`DATE`,'mm/dd/yyyy hh:mm:ss:mmm')) AS VARCHAR)
decimal varchar LC_YEAR = YEAR(str_to_time(`DATE`,'mm/dd/yyyy hh:mm:ss:mmm'))
理想情况下,您不需要加入涉及数据类型的转换