我有一个数据库,它有一个像{YYYYMMDD}这样的格鲁吉亚日期列。我想有一个列(或3为年,月和日)的Jalai日期。我可以很容易地编写和脚本使用python将格鲁吉亚日期转换为贾拉利。这是我用python写的:
import jdatetime as jdt
georgian = str(20170828)
def GtoJ(georgian):
jalai = jdt.GregorianToJalali(int(georgian[:4]),int(georgian[4:6]),int(georgian[-2:]))
# print('{}{:02}{:02}'.format(jalai.jyear,jalai.jmonth,jalai.jday))
return '{}{:02}{:02}'.format(jalai.jyear,jalai.jmonth,jalai.jday)
print(GtoJ(georgian)) ##13960606假设我使用sqlalchemy或任何其他sql引擎在postgresql数据库中创建了一个名为jdate的空列,我使用以下代码更新了每一行:
for date in history_tabel_date:
jdate = GtoJ(str(date))
con.execute('update history_tale jdate= value_jdate where date = {}'.format(date))用什么方法来编写一个做同样事情的sql函数呢?
一般来说,在sql之外编写脚本是不是一个好主意,或者sql函数更好,推荐使用?
发布于 2017-08-30 14:52:18
当使用数据库作为脚本的资源时,由于创建连接、传输数据等原因,当脚本和数据库来回传输时,瓶颈就会出现。因此,您应该考虑在两端执行大部分数据处理,并将查询(INSERTS、UPDATES、DELETES)的数量减少到最少。
如果您正在考虑在数据库端执行该函数,可以考虑使用PL/Python,它是一个
过程语言允许用Python语言编写PostgreSQL函数。
https://stackoverflow.com/questions/45953627
复制相似问题