【发布时间】:2014-04-11 17:15:42
【问题描述】:
SQLite 与 JavaScript 的结合让我很难确定日期。
为清楚起见,我使用以下方法插入日期“01-01-1999”:
var yy = "01-01-1999";
var yyy = new Date (yy.replace( /(\d{2})-(\d{2})-(\d{4})/, "$3-$2-$1") ); //date into YYYY-MM-DD format
db.transaction (function (transaction)
{
var sql = "INSERT INTO happyPeople (datum, name, event) VALUES (?, ?, ?)";
transaction.executeSql (sql, [yyy, fNameIn, fEventIn], function ()
{
alert (fNameIn + " inserted with date " + yyy );
}, error);
查看数据库确实显示“Fri Jan 01 1999 01:00:00 GMT+0100 (CET)”
但是……
当我查询同一天 (01-01-1999) 时
var sql = "SELECT * FROM happyPeople WHERE datum = strftime ('%Y-%m-%d','1999-01-01')";
我没有得到任何结果,这意味着没有错误,但返回列表为空。如果我将 '=' 替换为 '!=' 我会得到所有条目,所以查询似乎有效。 SQLite 数据库中保存日期的字段被定义为 VARCHAR[50] 但我也尝试了 TEXT 。结果一样。
那么,我如何在数据库中插入一个日期(对时间不感兴趣)以及如何查询它们?
谢谢!
【问题讨论】:
标签: javascript sqlite date