Thanks!

Here is a slightly  modified version that shows what happens : if querying
in another session, with a from_statement, the string is not processed. Is
it the expected behaviour ?

from datetime import datetime
from sqlalchemy import Column, DateTime, Integer, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite://', echo=True)

Base = declarative_base(engine)

Session = sessionmaker()


class LogEntry(Base):
    """Log class"""

    __tablename__ = 'log'

    #common data
    id = Column(Integer, primary_key=True)
    timestamp = Column(DateTime)

    def __init__(self,timestamp):
        self.timestamp = timestamp

log = LogEntry(timestamp=datetime.now())

Base.metadata.create_all()

session = Session()
session.add(log)
session.commit()
session.close()

session = Session()
log_1 = session.query(LogEntry).one()
session.close()

session = Session()
log_2 = session.query(LogEntry).from_statement("select * from log").one()
session.close()

print type(log_1.timestamp)
print type(log_2.timestamp)



On 21 June 2012 15:35, GHZ <geraint.willi...@gmail.com> wrote:

> Here is code that works for me:
>
>
> from datetime import datetime
> from sqlalchemy import Column, DateTime, Integer, create_engine
> from sqlalchemy.orm import sessionmaker
> from sqlalchemy.ext.declarative import declarative_base
>
> engine = create_engine('sqlite://', echo=True)
>
> Base = declarative_base(engine)
>
> Session = sessionmaker()
> session = Session()
>
> class LogEntry(Base):
>     """Log class"""
>
>     __tablename__ = 'log'
>
>     #common data
>     id = Column(Integer, primary_key=True)
>     timestamp = Column(DateTime)
>
>     def __init__(self):
>         self.timestamp = datetime.now()
>
> log = LogEntry()
>
> Base.metadata.create_all()
>
> session.add(log)
> session.flush()
>
> log = session.query(LogEntry).one()
>
> print type(log.timestamp)
>
>
> On Thursday, June 21, 2012 2:35:24 PM UTC+2, Fabien Ribes wrote:
>>
>> Hi all,
>>
>> I'm using Python 2.6.5 and SQLAlchemy-0.7.8 over sqlite3 to store and
>> retrieve logs with in table like this :
>>
>> class LogEntry(Base):
>>     """Log class"""
>>
>>     __tablename__ = 'log'
>>
>>     #common data
>>     id = Column(Integer, primary_key=True)
>>     timestamp = Column(DateTime())
>>
>> When querying back object, how comes I get unicode string in timestamp
>> attribute ? Isn't SA supposed to convert ISO formatted string stored in
>> sqlite back to python datetime object ?
>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/sqlalchemy/-/N6IlGbBTzyUJ.
> To post to this group, send email to sqlalchemy@googlegroups.com.
> To unsubscribe from this group, send email to
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com.
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to