美国的日期格式是 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 日期函数支持的唯一格式,也是唯一一个比较正常工作的格式),或者将时间戳存储为数字。