buggins / ddbc

DDBC is DB Connector for D language (similar to JDBC)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SQLException when retrieving DateTime using sqlite

SingingBush opened this issue · comments

ddbc.core.SQLException@../../../.dub/packages/ddbc-0.4.1/ddbc/source/ddbc/drivers/sqliteddbc.d(917): Cannot convert string to DateTime - 20190915T151851
----------------
../../../.dub/packages/ddbc-0.4.1/ddbc/source/ddbc/drivers/sqliteddbc.d:917 std.datetime.date.DateTime ddbc.drivers.sqliteddbc.SQLITEResultSet.getDateTime(int) [0xb87f6e]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/metadata.d-mixin-3365:3953 void hibernated.metadata.SchemaInfoImpl!(eloquent.model.user.User, eloquent.model.user.UserData, eloquent.model.blogpost.BlogPost, eloquent.model.blogpost.BlogPostData, eloquent.model.comment.Comment, eloquent.model.comment.CommentData).SchemaInfoImpl._sharedStaticCtor_L3365_C1().__funcliteral107(Object, ddbc.core.DataSetReader, int) [0xac184f]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/metadata.d:3275 int hibernated.metadata.SchemaInfo.readAllColumns(Object, ddbc.core.DataSetReader, int).__foreachbody4(ref const(hibernated.metadata.PropertyInfo)) [0xb52857]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/metadata.d:292 const int hibernated.metadata.EntityInfo.opApply(int delegate(ref const(hibernated.metadata.PropertyInfo))) [0xb50224]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/metadata.d:3257 const int hibernated.metadata.SchemaInfo.readAllColumns(Object, ddbc.core.DataSetReader, int) [0xb526ff]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/session.d:897 Object hibernated.session.QueryImpl.readRelations(Object, ddbc.core.DataSetReader, hibernated.session.PropertyLoadMap) [0xb5ae03]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/session.d:1085 Object[] hibernated.session.QueryImpl.listObjects(Object, hibernated.session.PropertyLoadMap) [0xb5c771]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/session.d:1060 Object[] hibernated.session.QueryImpl.listObjects(Object) [0xb5c511]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/session.d:973 Object[] hibernated.session.QueryImpl.listObjects() [0xb5b998]
../../../.dub/packages/hibernated-0.3.5/hibernated/source/hibernated/session.d:160 eloquent.model.blogpost.BlogPost[] hibernated.session.Query.list!(eloquent.model.blogpost.BlogPost).list() [0xb0fc82]

According to https://www.sqlite.org/lang_datefunc.html

A time string can be in any of the following formats:

YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD

Also, format 2 to 10 can be followed by [+-]HH:MM or Z (for UTC).

So it seems weird that my code had the date in format YYYYMMDDTHHMMSS without hyphens/colons. Regardless we should probably handle it.

The timezone stuff will have to be done #62