1
날짜 열을 포함하여 SQLite 데이터베이스에 데이터를 삽입하려고합니다. 그러나 아래의 코드에서 쿼리를 실행할 때 LastLogin
필드는 절대로 채워지지 않습니다. 또한 Created
필드는 기본값이 CURRENT_TIMESTAMP
이더라도 비어 있습니다. 쿼리의 다른 모든 필드가 올바르게 채워집니다. 아무도 왜 이것이라고 말할 수 있습니까? SQLite DB에 Date() 값을 삽입 할 수 없습니다.
이
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는 관리자를 통해 다음과 같은 SQL을 실행할 때 사실이다 Created
이 채워지기는하지만 LastLogin
필드는 여전히 비어 있습니다.
INSERT INTO User (Id, CredentialsToken, GivenName, FamilyName, LastLogin) VALUES (111, 'XYZ', 'Foo', 'Bar', '29-10-2013')
감사합니다. 'toISODateString'은 '함수가 인식되지 않음'오류를 발생시킵니다. 이전의'toDateString' 답변은 sytnax 에러를 일으키지 않습니다. 에러 이벤트를 발생시키기 때문에 작동하지 않습니다. 나는 이제 왜 이것이 무엇인지 알아 내려고 노력 중입니다. –
정확히 어떤 오류가 발생합니까? –
돌아와 줘서 고마워. 사실 아무런 문제가 없다는 것을 알았습니다. 이 문제는 SQLite Administrator에서 'STRFTIME ('% J ', LastLogin)'과 같이 줄리안 -> 문자열 변환을 사용하여 선택해야하므로 날짜 필드를 올바르게 표시하지 못했습니다. 감사. –