什么是 SQlite 和 WinRT 默认日期格式(区域设置)



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

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

类顺序      {        [主键,自动增量]        public int SId { get; set; }        public int CustId { get; set; }            公共字符串 No { get; set; }               公共字符串客户 { get; set; }        public DateTime Order_Date { get; set; }      }using (var db = new SQLite.SQLiteConnection(DBPath))     {        var newOrder = new Order()        {           CustId = g_intCustId,           Customer = txtBlkCustomer.Text.Trim(),           Order_Date = DateTime.Today          };   呜呜��插入(新订单);

1)SQLite的日期格式存储是什么?美国或英国日期格式?

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

3)如果完成了上述(2),那么基于日期的选择语句(SQL语句)将基于设置的语言环境吗?

谢谢

我假设你正在使用system.data.sqlite。

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

Ticks

- 使用 DateTime.Ticks 的值。

ISO8601 - 使用 ISO-8601 格式。使用"yyyy-MM-dd HH:mm:ss。FFFFFFFK"格式为 UTC 日期时间值和"yyyy-MM-dd HH:mm:ss.FFFFFFF"格式为本地 日期时间值)。

朱利安日 - 以天为单位的时间间隔和 自公元前 4713 年 1 月 1 日以来的一天的零碎部分。

Unix时代 - 整体 自 Unix 纪元(1970 年 1 月 1 日)以来的秒数。

固定区域性 - .NET 的任何与区域性无关的字符串值 框架可以解释为有效的日期时间。

当前文化 - 任何 .NET Framework 可以解释为有效日期时间的字符串值 使用当前区域性。

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

切勿将本地化日期存储在数据库中;如果区域设置更改,并且此类字符串未正确排序,这将中断。

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

最新更新