2012-08-25 6 views
0

PhoneGap을 사용하여 Sqlite에 현재 날짜와 시간을 저장하는 방법은 무엇입니까?PhoneGap을 사용하여 Sqlite에 현재 날짜와 시간을 저장하는 방법

tx.executeSql("CREATE TABLE IF NOT EXISTS myorder(orderid INTEGER PRIMARY KEY AUTOINCREMENT,cdatetime VARCHAR)"); 

tx.executeSql('INSERT INTO myorder(orderid,cdatetime) VALUES(NULL,"01/01/2012 01:00:00")',[],successOrderfunction,errorfunction); 

올바른 저장 방법이 있습니까?

답변

3

현재 날짜 시간을 오래 저장할 수 있습니다. 긴 데이터 형식으로 테이블 열을 정의하고이처럼 값을 삽입 :

tx.executeSql("CREATE TABLE IF NOT EXISTS myorder(orderid INTEGER PRIMARY KEY, cdatetime long)"); 

tx.executeSql("INSERT INTO myorder(cdatetime) VALUES("+myDate.getTime()+")",[],successOrderfunction,errorfunction); 

을 그건 그렇고. 자동 증가 기능을 사용할 필요가 없습니다. 기본 키 정수에 널 (NULL) 값을 삽입하려고하면 필드는 자동으로 해당 컬럼의 최대 값보다 큰 정수로 변환됩니다.

+0

긴 데이터 형식을 사용하는 경우 cdatetime을 사용하여 테이블 순서를 쿼리 할 수 ​​있습니까? – Ramprasad

+0

예. 가능합니다. 날짜가 높을수록 긴 값이 높아집니다. "사이"운영도 가능합니다. –

+0

고맙습니다. 이걸 시도해보십시오. – Ramprasad

1

sqlite 또는 phonegap을 사용하지 않지만 pk 테이블에 null을 추가 할 수 없습니다. 숫자를 추가하거나 아무것도 추가하지 마십시오.

tx.executeSql('INSERT INTO myorder(cdatetime) VALUES("01/01/2012 01:00:00")',[],successOrderfunction,errorfunction); 

이렇게하면 증분 pk가 생성됩니다.

tx.executeSql('INSERT INTO myorder(orderid,cdatetime) VALUES(1, "01/01/2012 01:00:00")',[],successOrderfunction,errorfunction); 

이것은 또한 작동해야합니다. 저는 sqlite에서 수동으로 pk를 추가 할 수 있다고 생각합니다.

+0

가장 RMDB 시스템에 MySQL, MSSQL과 SQLite는 당신이 자신이 무엇을하고 있는지 어떤 당신을위한 다음 자동 증가 (Autoinc) 번호를 생성합니다 자동 증가 기본 키와 DB에 대한 NULL을 전달할 수 있도록 이리. –

+0

어쩌면 sqlite를 위해, 나는 그것을 사용하지 않는다고 말했듯이 그렇습니다. 하지만 나는 mysql과 mssql이 당신이 pk에 들어가는 것을 허용하지 않을 것이라고 생각한다. 나도 널 생각할 수있을 때 널 관련 오류와 코드 윤리적 오류를 기억한다. –

+0

mysql과 mssql 모두이 구문을 허용합니다. 'mytable (MyID, title) 값에 삽입 (Null,'My Value ')' –

0

시도 :

tx.executeSql('CREATE TABLE IF NOT EXISTS expens (Etype TEXT,amount REAL,created_at DATETIME DEFAULT CURRENT_TIMESTAMP)');

관련 문제