美国的日期格式为MM / DD / YYYY,英国为DD / MM / YYYY。
当您首次打开设置时,WinRT平板电脑将根据TimeZone设置日期格式。
假设我正在设置我的WinRT平板电脑使用英国日期格式(DD / MM / YYYY)并使用此代码将日期插入SQLite。
Class Order { [PrimaryKey, AutoIncrement] public int SId { get; set; } public int CustId { get; set; } public string No { get; set; } public string Customer { 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 }; db.Insert(newOrder);
1)SQLite的日期格式存储是什么?美国或英国日期格式?
2)如何为SQLite数据库设置日期区域设置(美国日期或英国日期)?
3)如果完成上面的(2),那么基于日期的select语句(SQL语句)将基于语言环境集?
由于
答案 0 :(得分:1)
我假设你正在使用system.data.sqlite。
根据文档,DateTimeFormat
参数中有一个SQLiteConnection´
参数,用于指定在数据库中处理DateTime
的方式:
Ticks - 使用DateTime.Ticks的值。
ISO8601 - 使用ISO-8601格式。使用UTC的“yyyy-MM-dd HH:mm:ss.FFFFFFFK”格式 日期时间值和本地的“yyyy-MM-dd HH:mm:ss.FFFFFFF”格式 DateTime值)。
JulianDay - 以天为单位的时间间隔 自公元前4713年1月1日起的一天中的一小部分。
UnixEpoch - 整体 自Unix时代(1970年1月1日)以来的秒数。
InvariantCulture - .NET的任何与文化无关的字符串值 框架可以解释为有效的DateTime。
CurrentCulture - 任何 .NET Framework可以将其解释为有效DateTime的字符串值 使用当前的文化。
默认为ISO8601
。还有一个“自定义”DateTimeFormatString
和一个DateTimeKind
来指定UTF或本地日期时间。
答案 1 :(得分:0)
您绝不应将本地化日期存储在数据库中;如果语言环境发生变化,这将会中断,并且此类字符串无法正确排序。
使用格式yyyy-mm-dd
(the only one supported by the internal SQLite date functions,以及唯一一个比较正常工作的格式),或者存储时间戳as numbers。