簡體   English   中英

sqlite比較時間戳和C#中的DateTime

[英]sqlite compare timestamp with DateTime in C#

如何將sqlite時間戳與C# DateTime 我有:

string query = string.Format(@"select avg(CPUH_VALUE_ALL) as Value from CPU_HOUR where CPUH_DATE >= @Date");
var pars = new List<SQLiteParameter>();
pars.Add(new SQLiteParameter("Date", DateTimeSQLite(DateTime.Now.AddMinutes(-12))));

哪里

static string DateTimeSQLite(DateTime datetime)
{
    string dateTimeFormat = "{0}-{1}-{2} {3}:{4}:{5}.{6}";
    return string.Format(dateTimeFormat, datetime.Year, datetime.Month, datetime.Day, datetime.Hour, datetime.Minute, datetime.Second, datetime.Millisecond);
}

那是行不通的。 當我嘗試將時間戳與各種格式的日期的字符串值進行比較時,也沒有任何效果。 有什么線索嗎?

編輯

select CPUH_DATE from CPU_HOUR where CPUH_DATE

給我這樣的記錄:

5/19/2014 9:30:54 PM

Edit2我剛剛發現,這不起作用:

select * from CPU_HOUR where CPUH_DATE >= '2014-5-19 21:30:08' 

這是(請注意5之前的零):

select * from CPU_HOUR where CPUH_DATE >= '2014-05-19 21:30:08' 

有趣。

SQLite沒有為存儲日期和/或時間預留存儲類。 相反,SQLite內置的日期和時間功能可以將日期和時間存儲為TEXT,REAL或INTEGER值:

文本為ISO8601字符串(“ YYYY-MM-DD HH:MM:SS.SSS”)。 實際為儒略日數,根據公歷在公元前4714年11月24日格林威治中午以來的天數。 INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以來的秒數。 應用程序可以選擇以任何一種格式存儲日期和時間,並使用內置的日期和時間功能在格式之間自由轉換。

資料來源: sqllite.org

我的建議是將datetime值保存為整數。 這樣,您將不會對比較等操作產生任何問題。 並且,如果您在查詢中需要非數字日期,則可以使用內置的Datetime函數,如下所示:

SELECT datetime(1092941466, 'unixepoch');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM