0

美国的日期格式是 MM/DD/YYYY,英国的日期格式是 DD/MM/YYYY。
WinRT 平板电脑将在您首次打开它进行设置时根据时区设置日期格式。

假设我将我的 WinRT 平板电脑设置为使用英国日期格式 (DD/MM/YYYY) 并使用此代码将日期插入 SQLite。

上课顺序
      {
        [主键,自动增量]
        公共 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) SQLite 存储的日期格式是什么?美国或英国日期格式?

2) 如何为 SQLite 数据库设置日期区域设置(美国日期或英国日期)?

3)如果上面(2)完成,那么基于日期的选择语句(SQL语句)将基于区域设置?

谢谢

4

2 回答 2

1

我假设您正在使用

根据文档,参数中有一个DateTimeFormat参数SQLiteConnection´将指定如何DateTime在数据库中处理:

Ticks - 使用 DateTime.Ticks 的值。

ISO8601 - 使用 ISO-8601 格式。对 UTC DateTime 值使用“yyyy-MM-dd HH:mm:ss.FFFFFFFK”格式,对本地 DateTime 值使用“yyyy-MM-dd HH:mm:ss.FFFFFFF”格式)。

JulianDay - 自公元前 4713 年 1 月 1 日以来的时间间隔(以天为单位)和一天的分数。

UnixEpoch - 自 Unix 纪元(1970 年 1 月 1 日)以来的秒数。

InvariantCulture - .NET Framework 可以解释为有效 DateTime 的任何与区域性无关的字符串值。

CurrentCulture - .NET Framework 可以使用当前区域性将其解释为有效 DateTime 的任何字符串值。

默认为ISO8601。还有一个“自定义”DateTimeFormatString和一个DateTimeKind指定 UTF 或本地日期时间。

于 2013-10-14T09:10:10.720 回答
0

您永远不应该将本地化日期存储在数据库中;如果语言环境发生更改,这将中断,并且此类字符串无法正确排序。

要么使用格式yyyy-mm-dd(这是内部 SQLite 日期函数唯一支持的格式,也是唯一可以正常进行比较的格式),或者将时间戳存储为数字

于 2013-10-14T08:29:20.097 回答