这是我第一次使用cx_oracle。我的项目的一部分是创建一个处理“SELECT FROM ...”查询并显示它们的搜索引擎。这是用于搜索患者信息和他/她已经开出的测试。我认为返回测试的处方日期也是一个好主意。
这是我执行的内容:
searchPatientName = "SELECT b.PATIENT_NO, a.NAME, c.TEST_NAME, b.TEST_DATE, b.RESULT FROM patient a, test_record b, test_type c WHERE b.TYPE_ID = c.TYPE_ID AND b.PATIENT_NO = a.HEALTH_CARE_NO AND a.NAME = :patient_name"
patientName = "Vera Fuselier"
search.execute(searchPatientName, patient_name=patientName)
rows = search.fetchall()
for row in rows:
print(row)
break
我得到的输出是我想要的项目,但日期不是我想要的。
(100103, 'Vera Fuselier', 'Blood Test', datetime.datetime(2012, 8, 30, 0, 0), 'Normal')
(100103, 'Vera Fuselier', 'MRI', datetime.datetime(2014, 11, 30, 0, 0), 'Sclerosis')
请注意日期是如何显示我想要的方式(使用datetime.datetime),我无法找到解决此问题的方法。
我一直用这个无济于事:getting date fields from oracle in correct format using Python and cx-oracle
如何以例如'12 -08-30'的格式显示日期?
答案 0 :(得分:3)
datetime是python的日期对象,您可以获得所需的任何格式 在您的情况下,您可以使用以下格式获取格式:
import datetime
row[3].strftime('%y-%m-%d')
现在澄清发生了什么。使用strftime()
,您可以从Datetime对象中获取日期或时间字符串。与'%y-%m-%d'
我形成了它。
row[3]
应该是你的dateobject元素。
%y
返回2014年的14
等2位数年份。如果您想要全年,则必须输入%Y
%m
返回月份数和%d
天数。
还有工作日,月份名称等选项。
您可以在docs
中了解相关信息所以现在你的代码应该是这样的:
import datetime
#your code to read the file
for row in rows:
row[3] = row[3].strftime('%y-%m-%d')
print(row)
#some other code