我正在将DB2表加载到mysql中,并且在使用Date格式加载数据时遇到了问题。
我将这些列转换为VARCHAR(26)格式并成功加载数据。
现在我想将 2003-01-13-16.50.32.000000 转换为日期格式。
我引入了另一个具有Date数据类型的列,并尝试使用origional(String)列更新它。
update po_datamart
set POH_APPROVED_DATE_TEMP=DATE_FORMAT(str_to_date(POH_APPROVED_DATE,'%Y-%c-%d-%H.%i.%s'), '%Y-%c-%d%H:%m:%s');
我收到以下错误"错误代码:1292。截断错误的日期时间值:' 2003-01-13-16.50.32.000000'"。
如果有人可以帮我解决此VARCHAR到DATE的转换,我们将不胜感激。
答案 0 :(得分:1)
将STR_TO_DATE
与适当的格式掩码一起使用:
SELECT STR_TO_DATE('2003-01-13-16.50.32.000000', '%Y-%m-%d-%H.%i.%s.%f')
如果您想要更新:
UPDATE po_datamart
SET POH_APPROVED_DATE_TEMP = STR_TO_DATE(POH_APPROVED_DATE, '%Y-%m-%d-%H.%i.%s.%f')
请按照以下链接查看正在运行的演示:
答案 1 :(得分:0)
我认为你只需要和空间,试试:
set POH_APPROVED_DATE_TEMP=DATE_FORMAT(str_to_date(POH_APPROVED_DATE,'%Y-%c-%d-%H.%i.%s'), '%Y-%c-%d %H:%m:%s');
我将最后一个字符串'%Y-%c-%d%H:%m:%s'
更改为'%Y-%c-%d %H:%m:%s'
。
更新 date
列:
set POH_APPROVED_DATE_TEMP=DATE_FORMAT(str_to_date(POH_APPROVED_DATE,'%Y-%c-%d-%H.%i.%s'), '%Y-%c-%d');
答案 2 :(得分:0)
试试这个:
update po_datamart set POH_APPROVED_DATE_TEMP = str_to_date(POH_APPROVED_DATE, '%Y-%m-%d-%H.%i.%s.%f');
答案 3 :(得分:0)
UPDATE po_datamart
SET POH_APPROVED_DATE_TEMP = str_to_date(POH_APPROVED_DATE, '%Y-%m-%d-%H.%i.%s.%f');