当我在oracle中使用trunc
函数并在oracle developer
中运行查询时,我只从datetime字段中获取日期值。例如,低于查询
Select trunc(min(Transaction_Date)) as StartDate,
trunc(Max(Transaction_Date)) as EndDate
from table1
返回
29-feb-2016 02-oct-2016
但在python中使用时相同的查询并打印到输出文件
print("start",row[0])
print("end",row[1])
dateperiod=str(row[0]).strip() + " - " + str(row[1]).strip()
print("date period :", dateperiod)
输出
('start', datetime.datetime(2016, 2, 29, 0, 0))
('end', datetime.datetime(2016, 10, 2, 0, 0))
('date period :', '2016-02-29 00:00:00 - 2016-10-02 00:00:00')
我需要的输出是2016-02-29 - 2016-10-02
。不知道为什么它改变了python中的格式。请帮助解决正确的解决方案
尝试使用to_date(min(Transaction_Date),'YYYY-MM-DD')
但奇怪的是输出没有变化。
答案 0 :(得分:1)
只需格式化您想要的格式:
dateperiod = "{0:%Y-%m-%d} - {1:%Y-%m-%d}".format(row[0], row[1])
答案 1 :(得分:0)
我认为在代码中从oracle格式化日期值时,另一个答案也是有意义的。但对我来说,char类型就足够了。所以使用如下,它们都是相同的
to_char(min(Transaction_Date),'DD-MM-YY') as MinDate,