如何在 SQLite 表中插入日期和查询日期

Posted

技术标签:

【中文标题】如何在 SQLite 表中插入日期和查询日期【英文标题】:How to insert date and Query date in SQLite table 【发布时间】:2013-10-17 17:54:08 【问题描述】:

我对SQLite的处理日期不熟悉。

问题:

    我可以这样插入日期还是使用 DateTime 插入任何日期来创建。

    Order_Date = DateTime.Today

如何:

a) 如何使用选择或查询记录集基或 Order_Date ?

b) 如何根据日期范围选择或查询记录集?从这个日期到这个日期。

谢谢

上课顺序 [主键,自动增量] 公共 int SId 获取;放; 公共 int CustId 获取;放; 公共字符串没有得到;放; 公共字符串客户获取;放; 公共日期时间 Order_Date 获取;放; 使用 (var db = new SQLite.SQLiteConnection(DBPath)) var newOrder = 新订单() CustId = g_intCustId, 客户 = txtBlkCustomer.Text.Trim(), Order_Date = DateTime.Today ; db.Insert(newOrder); ----- 更新: 1)我想知道将日期插入到表中的 dateTime DataType 字段中的正确方法是什么?使用来自 DateTime.Today、DateTime.Now 的日期 2)输入日期时需要在SQLite表中添加哪些字段 a) 正常日期格式 (dd/mm/yyyy) b) 格式如:日期与 HHMMSS 3)如何查询或选择(2a)和(2b)的日期? 谢谢

【问题讨论】:

【参考方案1】:

我可以这样插入日期还是使用 DateTime 插入任何日期来创建。 Order_Date = DateTime.Today

是的,DateTime.Today 虽然插入会起作用。 SQLite 在内部将 DateTime 对象存储为字符串。

如何使用选择或查询记录集基或 Order_Date ?

using (var db = new SQLite.SQLiteConnection(ApplicationData.Current.LocalFolder.Path + "\\aaa.sqlite"))

    // You can use any one
    var list2 = db.Query<Order>("SELECT * FROM Order WHERE Order_Date = datetime('2013-10-01')", "");

    var list3 = db.Query<Order>("SELECT * FROM Order WHERE Order_Date = ?", DateTime.Today.AddDays(-5));

如何根据日期范围选择或查询记录集?从这个日期到这个日期。

using (var db = new SQLite.SQLiteConnection(ApplicationData.Current.LocalFolder.Path + "\\aaa.sqlite"))

    // You can use any one
    var list = db.Query<Order>("SELECT * FROM Order WHERE Order_Date BETWEEN datetime('2013-10-01') AND datetime('2013-10-07')", "");

    var list1 = db.Query<Order>("SELECT * FROM Order WHERE Order_Date BETWEEN ? AND ?", DateTime.Today.AddDays(-9), DateTime.Today.AddDays(-3));

SQLite Date And Time Functions

【讨论】:

datetime('2013-10-07') 不是没有意义吗?这将返回'2013-10-07 00:00:00'2013-10-07 12:00:00 的订单怎么样?它将无法查询! 我使用了datetime('2013-10-07'),因为 OP 将订单日期传递为DateTime.Today 而不是DateTime.Now 所以,最好使用date()!并使用文字'2013-10-07',因为函数调用没有做任何事情! SQLite 的 date() 和 datetime() 有什么不同吗?文字后面必须跟 year,Day,Month(英国日期)或美国日期 :year,Month,Day。我不确定。 date() 只会解析日期,它不会接受时间。 Fot文字格式请看this【参考方案2】:

浏览下面的链接

Windows Phone 7 Native Database Programming via Sqlite Client for Windows Phone

SQLite-WinRT: Database programming on Windows Phone and Windows 8

How to use SQLite in Windows Phone

希望对你有帮助

【讨论】:

我可以在 WinRT 应用程序中同时使用 SQLite-Net 和 SQLite-WinRT 来创建相同的 SQLite 数据库吗? @MilkBottle:是的,但我的建议是你使用 Windows Phone 7 Native Database Programming via Sqlite Client for Windows Phone.bcos 这对你来说变得非常容易

以上是关于如何在 SQLite 表中插入日期和查询日期的主要内容,如果未能解决你的问题,请参考以下文章