2013-10-14 91 views
0

美國的日期格式是MM/DD/YYYY,英國是DD/MM/YYYY。
WinRT平板電腦將在您首次打開設置時在時區中設置日期格式。什麼是SQlite和WinRT默認日期格式(區域設置)

假設我將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),那麼基於date的select語句(SQL語句)將基於locale集合嗎?

謝謝

回答

0

您不應該將本地化日期存儲在數據庫中;如果語言環境發生變化,這將會中斷,並且這樣的字符串不能正確排序。

可以使用格式yyyy-mm-dd(即the only one supported by the internal SQLite date functions,以及比較正確工作的唯一一個格式)或存儲時間戳as numbers

+0

根據上面的LS_dev,我的Order_Date = DateTime.Today可以嗎?是DateTime,今天還是DateTime.Now是指UTC日期時間值? SQLite將處理DateTime.Today爲yyyy-mm-dd並將其插入到Order_Date中? – MilkBottle

+0

你能給我一個本地化日期的例子嗎? – MilkBottle

1

我假設您使用的是

根據文檔,存在SQLiteConnection´參數DateTimeFormat參數,將指定DateTime是如何在數據庫處理:

蜱 - 使用DateTime.Ticks的價值。

ISO8601 - 使用ISO-8601格式。對於本地 日期時間值,使用UTC DateTime值和「yyyy-MM-dd HH:mm:ss.FFFFFFF」格式的「yyyy-MM-dd HH:mm:ss.FFFFFFFK」格式。

JulianDay - 自公元前4713年1月1日以來的時間間隔(天)和 。

UnixEpoch - 整個 自Unix時代(1970年1月1日)以來的秒數。 InvariantCulture - .NET Framework可以解釋爲有效日期時間的任何區別於文化的字符串值。

CurrentCulture - 任何 字符串值,.NET Framework可使用當前區域性將其解釋爲有效的DateTime 。

默認爲ISO8601。還有一個「自定義」DateTimeFormatStringDateTimeKind指定UTF或本地日期時間。

+0

當我使用DateTime.Today或DateTime.Now時,它們是默認的ISO8601嗎? – MilkBottle

+0

'DateTime.Today'和'DateTime.Now'是[tag:c#]'DateTime'數據類型。將[DateTime]數據存儲在[tag:SQLite]數據庫中時,[tag:System.Data.SQLite]連接器將'DateTime'轉換爲ISO8601格式的SQLite'Text'類型。 –

+0

是否可以使用Order_Date = DateTime.Today其中Order_Date是DateTime DataType? Sqlite將處理DateTime.Today,並按照您的說法將其放入Order_Date中。要在Sqlite中查詢日期,我必須記得使用。例如:「基於yyyy-mm-dd格式,選擇* from tblCustomer where Order_date ==」date('2013-10-12')? – MilkBottle

相關問題