簡體   English   中英

如何在SqlAlchemy中使用“CONVERT”功能?

[英]How to use “CONVERT” function in SqlAlchemy?

我試過了:

from sqlalchemy import VARCHAR
result = session.query(Table).filter(func.convert(VARCHAR(8), Table.datetimefiedld, 8) >= some_date).all()

我得到了AttributeError:'VARCHAR'對象沒有屬性'self_group'

有人可以解釋如何在sqlalchemy中使用CONVERT函數嗎? 謝謝!

我想表達這個的規范方法是:

func.convert(literal_column('VARCHAR(8)'), Table.datetimefiedld, 8)

由於像sqlalchemy.sql.func.ANYTHING(arg1, argN)這樣的表達式將被轉換為ANYTHING(arg1, argN) ,你可以破解:

func.convert(func.VARCHAR(8), Table.datetimefiedld, 8)

有什么不同?

>>> from sqlalchemy import sql
>>> print sql.func.CONVERT(func.VARCHAR(8), Table.fied, 8)
CONVERT(VARCHAR(:VARCHAR_1), table.field, :CONVERT_1)

>>> print sql.func.CONVERT(
              sql.literal_column('VARCHAR(8)'), 
              Table.fied, 
              sql.literal_column('8')
          )
CONVERT(VARCHAR(8), table.field, 8)

兩者都應該有效,但第二個更明確(更詳細)。 如果您要使用它,可以定義:

def date2str(field):
    return sql.func.CONVERT(
               sql.literal_column('VARCHAR(8)'), 
               field, 
               sql.literal_column(8)
           )

一個用途就是:

date2str(Table.field)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM