Python 将datetime.date对象与datetime.time对象组合时出错

Python 将datetime.date对象与datetime.time对象组合时出错,python,sql,date,python-datetime,Python,Sql,Date,Python Datetime,我当前正在尝试将datetime.date对象与datetime.time对象组合,以获得结果datetime.datetime样式的对象 我运行SQL查询并通过执行以下操作解析结果: import sqlite3 import time import datetime conn = sqlite3.connect('stu.sqlite3', detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES) cur = conn.cur

我当前正在尝试将datetime.date对象与datetime.time对象组合,以获得结果datetime.datetime样式的对象

我运行SQL查询并通过执行以下操作解析结果:

import sqlite3
import time
import datetime

conn = sqlite3.connect('stu.sqlite3', detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
cur = conn.cursor()
cur.execute('SELECT intra_day.date, intra_day.time, intra_day.price, closing_price.date, closing_price.cprice FROM intra_day, closing_price WHERE intra_day.date = closing_price.date')

for row in cur:
    date_intra, time_intra, price_intra, cp_date, cprice = (row[0], row[1], float(row[2]), row[3], float(row[4]))
    date_intra = datetime.datetime.strptime(date_intra, '%d/%m/%Y %H:%M:%S').date()
    time_intra = datetime.datetime.strptime(time_intra, '%H:%M:%S').time()
    cp_date = datetime.datetime.strptime(cp_date, '%d/%m/%Y %H:%M:%S').date()
type(date_intra)
Out[2]: datetime.date

type(time_intra)
Out[3]: datetime.time

type(cp_date)
Out[4]: datetime.date

print date_intra, time_intra, price_intra, cp_date, cprice
2008-07-07 05:40:00 1265.5 2008-07-07 1251.75

date_intra, time_intra, price_intra, cp_date, cprice
Out[13]: 
(datetime.date(2008, 7, 7),
 datetime.time(5, 40),
 1265.5,
 datetime.date(2008, 7, 7),
 1251.75)
一旦运行了,并且我在空闲状态下运行了类型和打印测试,我会得到以下结果:

import sqlite3
import time
import datetime

conn = sqlite3.connect('stu.sqlite3', detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
cur = conn.cursor()
cur.execute('SELECT intra_day.date, intra_day.time, intra_day.price, closing_price.date, closing_price.cprice FROM intra_day, closing_price WHERE intra_day.date = closing_price.date')

for row in cur:
    date_intra, time_intra, price_intra, cp_date, cprice = (row[0], row[1], float(row[2]), row[3], float(row[4]))
    date_intra = datetime.datetime.strptime(date_intra, '%d/%m/%Y %H:%M:%S').date()
    time_intra = datetime.datetime.strptime(time_intra, '%H:%M:%S').time()
    cp_date = datetime.datetime.strptime(cp_date, '%d/%m/%Y %H:%M:%S').date()
type(date_intra)
Out[2]: datetime.date

type(time_intra)
Out[3]: datetime.time

type(cp_date)
Out[4]: datetime.date

print date_intra, time_intra, price_intra, cp_date, cprice
2008-07-07 05:40:00 1265.5 2008-07-07 1251.75

date_intra, time_intra, price_intra, cp_date, cprice
Out[13]: 
(datetime.date(2008, 7, 7),
 datetime.time(5, 40),
 1265.5,
 datetime.date(2008, 7, 7),
 1251.75)
由此看来,我应该能够使用:

datetime.datetime.combine(date_intra(), time_intra())
合并日期对象和时间对象,但出现以下错误:

TypeError: 'datetime.date' object is not callable 
TypeError: an integer is required 
因为我不擅长Python,所以我也尝试过:

datetime.datetime.combine(datetime.date(date_intra), datetime.time(time_intra))
但会出现以下错误:

TypeError: 'datetime.date' object is not callable 
TypeError: an integer is required 
有人能指出我做错了什么,也许能纠正我吗


一旦我将这两个(日期和时间)组合在一起,我希望将cp\u date和time\u intra组合在一起。

您可以直接传入日期和时间对象:

这些已经是
datetime.combine()
所期望的正确类型的对象;无需再次调用它们或将它们转换为正确的类型

演示:

您只需在一个步骤中解析时间和日期:

这将获取
date\u intra
字符串的日期部分(第一个空格之前的所有内容),并将
time\u intra
列文本附加到该字符串,以解析出一个组合的日期和时间。

有问题的行是

datetime.datetime.combine(date_intra(), time_intra())
在这里,您将两个变量,
date\u intra
time\u intra
作为函数处理,并尝试调用它们。删除括号:

>>> datetime.datetime.combine(date_intra, time_intra)
datetime.datetime(2008, 7, 7, 5, 40)

你试过
datetime.datetime.combine(date\u intra,time\u intra)
吗?太好了,谢谢你们的回答!!我从零开始自学这些东西,有时它会融化我的大脑——非常感谢你的帮助!不客气,请接受这两个答案中的任何一个,如果你觉得它们有帮助,请向上投票。太好了-谢谢你们的回答!!我从零开始自学这些东西,有时它会融化我的大脑——非常感谢你的帮助!