Python- postgresql 时间戳和不带时区的时间

5
我有两个字符串,分别表示:
  1. 日期- dd/mm/yyyy hh:mm ,我需要将其转换为不含时区的时间戳
  2. 开始时间/结束时间- hh:mm:ss ,我需要将其转换为不含时区的时间
我需要这样做是为了将它们添加到 SQL 查询中,如下所示:
sql = '''
    INSERT INTO myTable (date, start_time, end_time)
    VALUES (%s ,%s, %s, %s);'''
params = [timestamp, start_time, end_time]
self.cursor.execute(sql, params)

你使用ORM(例如SQLAlchemy,Autumn等)还是直接使用一些dbapi模块(如psycopg2,pg8000等)? - jfs
1
我没有尝试过,但我认为你可以给 psycopg2 Python 字符串、浮点数、整数、日期时间对象,它会自动将它们转换为兼容的 SQL 类型,如果不行,你可以注册一个适配器。可能会有一些复杂情况,例如不同版本的 postgresql 以带/不带时区的类型方式处理 timestamppsycopg2 可能 会暴露出 postgresql 编译时间戳、时间时使用的整数或浮点数。你可以通过调用 cursor.mogrify() 来查看将要发送到数据库的内容。 - jfs
1个回答

2
  1. dd/mm/yyyy hh:mm to timestamp without time zone:

    import time
    
    date_string='24/10/2011 12:43'
    ttuple=time.strptime(date_string,'%d/%m/%Y %H:%M')
    timestamp=time.mktime(ttuple)
    # 1319474580.0
    
  2. hh:mm:ss to time without time zone:

    Can you clarify what kind of object is a time?


请查看此处:http://www.postgresql.org/docs/8.2/static/datatype-datetime.html - Ron D.
好的,谢谢。如果我想要 ISO 8601 格式,只包含时间而不是日期呢? - Ron D.
如果您输入一个以 hh:mm:ss 格式表示的字符串,您希望得到什么输出? - unutbu
我在这里进行了测试,它返回了带有时区的时间戳。 - ftoyoshima

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接