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

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

问题:

  1. 我可以这样插入日期还是使用 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)的日期? 谢谢

【问题讨论】:

    标签: sqlite windows-phone-8 windows-runtime microsoft-metro winrt-xaml


    【解决方案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】:

    【讨论】:

    • 我可以在 WinRT 应用程序中同时使用 SQLite-Net 和 SQLite-WinRT 来创建相同的 SQLite 数据库吗?
    • @MilkBottle:是的,但我的建议是你使用 Windows Phone 7 Native Database Programming via Sqlite Client for Windows Phone.bcos 这对你来说变得非常容易
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 2011-04-10
    • 2014-06-03
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    相关资源
    最近更新 更多