【问题标题】:Unable to insert Date() value into SQLite DB无法将 Date() 值插入 SQLite DB
【发布时间】:2013-10-30 18:02:20
【问题描述】:

我正在尝试将数据插入 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();
    }
}

另外值得注意的是,当我通过 SQLite Administrator 执行以下 SQL 时,LastLogin 字段仍然为空,尽管 Created 确实被填充了。

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

【问题讨论】:

    标签: actionscript sqlite flex-mobile


    【解决方案1】:

    我不确定,Date 对象将作为参数正确传递。 试试这个:

    sqlWrapper.statement.parameters[":lastLogin"] = (new Date()).toISOString();
    

    【讨论】:

    • 感谢您的帮助。 toISODateString 导致“无法识别功能”错误。 toDateString 的先前答案不会导致 sytnax 错误,尽管它不会工作,因为它会引发错误事件。我现在正试图弄清楚这是为什么。
    • 感谢您回来。我实际上发现没有问题。问题在于 SQLite 管理员没有正确显示日期字段,因为需要使用 Julian->String 转换来选择它们,例如 STRFTIME('%J', LastLogin)。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    相关资源
    最近更新 更多