在数据库/Oracle中读取和写入日期时间信息
我查询了一个 SQL
表,得到了以下的列表 L
L= ['S14', 'G7', '1', datetime.datetime(2011, 1, 30, 0, 0), 'R13', 100000]
我想先把日期格式改成 (yy,mm,dd),这个我已经成功做到,方法是
now=L[3]
new_format=now.date().isoformat()
这样得到了 (2011-01-30)
我需要这个日期格式来进行一些计算或者日期比较
最后,我想把这些信息写回数据库
并且格式要改成 (mm/dd/yy)
。我该怎么做呢?
请给我一些建议
2 个回答
0
如果你想把Python中的日期时间格式设置为'MM/DD/YYYY',可以使用 strftime("%m/%d/%y")
这个方法。不过,Python有很多很棒的函数和方法可以直接处理日期时间对象,所以把日期当成字符串来比较其实没必要。
如果你想把这样的数据插入到Oracle数据库中,可以直接使用这个格式,并用 TO_DATE()
来告诉数据库你用的是什么格式:
TO_DATE('01/23/2011', 'MM/DD/YYYY')
你甚至可以为Oracle会话设置日期时间格式,这样就可以直接使用日期而不需要 TO_DATE()
了:
alter session set nls_date_format='MM/DD/YYYY'
(我使用的格式是 YYYY-MM-DD HH24:MI:SS
,所以你得自己测试一下)
1
你可以使用:
datetime.datetime.strptime(mdyDate, 'm/d/y')
来把字符串转换回日期时间。
但是为什么不一直使用 datetime.datetime
呢?它非常适合做计算和日期比较。