在数据库/Oracle中读取和写入日期时间信息

0 投票
2 回答
1524 浏览
提问于 2025-04-16 15:48

我查询了一个 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 呢?它非常适合做计算和日期比较。

撰写回答