设置Teradata DB表的Python时间戳格式
我正在使用一个Teradata表,该表有一个timestamp列:timestamp(6),其中的数据如下所示:设置Teradata DB表的Python时间戳格式,python,datetime,teradata,Python,Datetime,Teradata,我正在使用一个Teradata表,该表有一个timestamp列:timestamp(6),其中的数据如下所示: 2/14/2019 13:09:51.210000 目前,我有一个Python时间变量,我想通过SQL将其发送到Teradata表中,如下所示: from datetime import datetime time = datetime.now().strftime("%m/%d/%Y %H:%M:%S") 02/14/2019 13:23:24 如何重新格式化以正确插入?这
2/14/2019 13:09:51.210000
目前,我有一个Python时间变量,我想通过SQL将其发送到Teradata表中,如下所示:
from datetime import datetime
time = datetime.now().strftime("%m/%d/%Y %H:%M:%S")
02/14/2019 13:23:24
如何重新格式化以正确插入?这是一个错误:
teradata.api.DatabaseError: (6760, '[22008] [Teradata][ODBC Teradata Driver][Teradata Database](-6760)Invalid timestamp.')
我尝试使用Teradata时间戳列使用的格式:
time = datetime.now().strftime("%mm/%dd/%YYYY %HH24:%MI:%SS")
相同的错误消息
谢谢把它弄明白了。结果证明与时间戳无关,我必须重新格式化它所读取的数据帧列。更改数据类型修复了它:
final_result_set['RECORD_INSERTED'] = pd.to_datetime(final_result_set['RECORD_INSERTED'])
现在,当通过SQL进行循环和插入时,以下方法对于填充“RECORD_INSERTED”效果良好:
time = datetime.now().strftime("%m/%d/%Y %H:%M:%S")
很抱歉搞混了把它弄明白了。结果证明与时间戳无关,我必须重新格式化它所读取的数据帧列。更改数据类型修复了它:
final_result_set['RECORD_INSERTED'] = pd.to_datetime(final_result_set['RECORD_INSERTED'])
现在,当通过SQL进行循环和插入时,以下方法对于填充“RECORD_INSERTED”效果良好:
time = datetime.now().strftime("%m/%d/%Y %H:%M:%S")
抱歉造成混淆m-d-y可能是客户端格式,请尝试使用
yyy-MM-DD HH:MI:SS
。@dnoeth谢谢,但不幸的是,这也不起作用。相同错误。然后尝试按原样传递字符串并应用Teradata函数:到时间戳('02/14/2019 13:23:24',mm/dd/yyyy hh24:mi:ss')
或切换到标准SQL时间戳文本:时间戳'yyyy mm dd hh:mi:ss
m-d-y可能是客户端格式,请尝试YYYYYY-mm-dd hh:mi:ss
。@dnoeth感谢,但不幸的是,这也不起作用。相同的错误。然后尝试按原样传递字符串并应用Teradata函数:到时间戳('02/14/2019 13:23:24',mm/dd/yyyy hh24:mi:ss')
或切换到标准SQL时间戳文本:时间戳'yyyy mm dd hh:ss