1

日付列を含むデータを SQLite データベースに挿入しようとしています。ただし、フィールドの下のコードでクエリを実行すると、LastLoginフィールドにはデータが入力されません。また、Createdデフォルト値が であっても、フィールドは空のままですCURRENT_TIMESTAMP。クエリの他のすべてのフィールドは正しく入力されます。これがなぜなのか誰か教えてもらえますか?

これは、SQLite のテーブル SQL です。

CREATE TABLE [User] (
    [Id] INTEGER  PRIMARY KEY NOT NULL,
    [CredentialsToken] TEXT  NULL,
    [GivenName] TEXT  NULL,
    [FamilyName] TEXT  NULL,
    [Created] DATE DEFAULT CURRENT_TIMESTAMP NULL,
    [LastUpdated] DATE  NULL,
    [LastLogin] DATE  NULL
)

これは、データを挿入する私の AS です。

private const CREATE_USER:String = "INSERT INTO User (Id, CredentialsToken, GivenName, FamilyName, LastLogin) VALUES (:id, :token, :givenName, :familyName, :lastLogin)";

public function createUser(args:Array):void
{           
    if (args[0] is DatabaseResponder && args[1] is Object)
    {
        var sqlWrapper:SQLWrapper = this.sqlStatementFactory.newInstance(args[0], CREATE_USER);
        var user:Object = args[1];
        sqlWrapper.statement.parameters[":id"] = user.Id; 
        sqlWrapper.statement.parameters[":token"] =  user.LoginToken;
        sqlWrapper.statement.parameters[":givenName"] = user.GivenName;
        sqlWrapper.statement.parameters[":familyName"] = user.FamilyName;
        sqlWrapper.statement.parameters[":lastLogin"] = new Date(); // this field is always empty
        sqlWrapper.statement.execute();
    }
}

LastLoginまた、SQLite アドミニストレーターを使用して次の SQL を実行すると、データは入力されますが、フィールドは空のままであるという事実も注目に値しますCreated

INSERT INTO User (Id, CredentialsToken, GivenName, FamilyName, LastLogin) VALUES (111, 'XYZ', 'Foo', 'Bar', '29-10-2013')
4

1 に答える 1

1

Date オブジェクトがパラメーターとして正しく渡されるかどうかはわかりません。これを試して:

sqlWrapper.statement.parameters[":lastLogin"] = (new Date()).toISOString();
于 2013-10-29T20:17:20.227 に答える